观察 MongoDB 到 return 的变化以及指定的字段值而不是 returning fullDocument

Watch MongoDB to return changes along with a specified field value instead of returning fullDocument

我正在使用 mongo 的 watch() 函数来监听对 replicaSet 所做的更改,现在我知道我可以通过将 { fullDocument: 'updateLookup' } 传递给手表方法, 像 :-

someModel.watch({ fullDocument: 'updateLookup' })

但我真正想做的是,只获得一个额外的字段,每次进行新更新时都不会更改。

假设一个名为 'user_id' 的字段,目前我只得到 updatedFields 和包含 'user_id'fullDocument 以及我需要的许多其他数据想避免。

目前我研究的是Aggregation pipeline,但无法找到实现它的方法。

谁能帮我想办法解决这个问题?

感谢大家的建议,正如@D.SM所指出的,我成功实施了$project

像这样:-

const filter = [{"$match":{"operationType":"update"}}, {"$project":{"fullDocument.user_id": 1, "fullDocument.chats": 0, "fullDocument._id": 0, "fullDocument.first_name": 0, "fullDocument.last_name": 0 }}];

然后传递给watch()方法

赞:-

const userDBChange = userChatModel.watch(filter, { fullDocument: 'updateLookup' });

现在,当 operationTypeupdate 时,我只会在 fullDocument 对象中获取 user_id,因此减少了从 mongo[= 返回的数据开销17=]

再次感谢@D.SM 和其他人对我的帮助 ;)