Mongodb 使用ArrayFilter更新阵列内适当的对象属性,并使用流更改观察程序接收更改

Mongodb 使用ArrayFilter更新阵列内适当的对象属性,并使用流更改观察程序接收更改,mongodb,Mongodb,是否有人使用阵列过滤器更新文档,并使用流更改观察程序监听集合内部的更改 问题是,当我在每个文档的对象数组中使用arrayFilters更新一个对象内部的特定属性时,在updateDescriptionJSON的UpdatedFields中,我会收到这个对象的所有字段,而我只更新了其中的几个字段 我的问题是如何只获取更新的字段 例如: 我有一些问题: { _id: <question_id>, text: <question_text>, author:

是否有人使用阵列过滤器更新文档,并使用流更改观察程序监听集合内部的更改

问题是,当我在每个文档的对象数组中使用arrayFilters更新一个对象内部的特定属性时,在
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"}
      ]
   }