Mongodb 使用ArrayFilter更新阵列内适当的对象属性,并使用流更改观察程序接收更改
是否有人使用阵列过滤器更新文档,并使用流更改观察程序监听集合内部的更改 问题是,当我在每个文档的对象数组中使用arrayFilters更新一个对象内部的特定属性时,在Mongodb 使用ArrayFilter更新阵列内适当的对象属性,并使用流更改观察程序接收更改,mongodb,Mongodb,是否有人使用阵列过滤器更新文档,并使用流更改观察程序监听集合内部的更改 问题是,当我在每个文档的对象数组中使用arrayFilters更新一个对象内部的特定属性时,在updateDescriptionJSON的UpdatedFields中,我会收到这个对象的所有字段,而我只更新了其中的几个字段 我的问题是如何只获取更新的字段 例如: 我有一些问题: { _id: <question_id>, text: <question_text>, author:
updateDescription
JSON的UpdatedFields
中,我会收到这个对象的所有字段,而我只更新了其中的几个字段
我的问题是如何只获取更新的字段
例如:
我有一些问题:
{
_id: <question_id>,
text: <question_text>,
author: <author_id>,
answers: [
{ id: 1560962918255, readBy: [], likedBy: [], author: <author_id>, text: <answer_text> },
{ id: 1560962976840, readBy: [], likedBy: [], author: <author_id>, text: <answer_text> },
{ id: 1565625317539, readBy: [], likedBy: [], author: <author_id>, text: <answer_text> },
{ id: 1565625328764, readBy: [], likedBy: [], author: <author_id>, text: <answer_text> }
]
}
在此更新之后,流观察器在updateDescription
中为我提供此类更新:
"updateDescription":
{"updatedFields":{
"answers":[
{"likedBy":["5ced9e11aa9f7a280fc5e79e"], "readBy":["5ced9e11aa9f7a280fc5e79e"], "id":1560962918255,"text":"text 1", "author":"5ced9e11aa9f7a280fc5e79e"},
{"likedBy":[], "readBy":["5ced9e11aa9f7a280fc5e79e"], "id":1560962976840,"text":"text 2", "author":"5cffc9cdc2ded906ff980f94"}
]
}
正如您所见,每个答案不仅包括更新的字段likedBy和*readBy**,还包括id、文本和作者,我没有更新这些字段
如果您有任何想法可以避免接收未更新的字段,或者我可以在其他内容上替代使用ArrayFilters
"updateDescription":
{"updatedFields":{
"answers":[
{"likedBy":["5ced9e11aa9f7a280fc5e79e"], "readBy":["5ced9e11aa9f7a280fc5e79e"], "id":1560962918255,"text":"text 1", "author":"5ced9e11aa9f7a280fc5e79e"},
{"likedBy":[], "readBy":["5ced9e11aa9f7a280fc5e79e"], "id":1560962976840,"text":"text 2", "author":"5cffc9cdc2ded906ff980f94"}
]
}