我将 MongoDB 更改流与 Mongoose 结合使用来监视实例集合中的更改。这是我正在使用的代码:
Instances.watch(watchFilter, {
fullDocument: "updateLookup",
fullDocumentBeforeChange: "whenAvailable"
}).on("change", (data) => {
if (data.operationType === "update" && data.fullDocumentBeforeChange) {
console.log(data);
}
});
我遇到的问题是,即使仅修改了 UpdatedAt 字段,也会触发更改流事件。这对我来说没有意义,因为我希望其他字段也能更新,而不仅仅是 updateAt 字段。
返回数据示例:
{
ns: { db: 'main', coll: 'instances' },
documentKey: { _id: new ObjectId("63cf3229cbc4eeec96cac47b") },
updateDescription: {
updatedFields: { updatedAt: 2024-08-29T06:28:52.503Z },
removedFields: [],
truncatedArrays: []
},
fullDocumentBeforeChange: ...,
fullDocument: ...
}
为什么会发生这种情况?如果仅修改了 UpdatedAt 字段,如何配置更改流以忽略这些更新?
任何见解或解决方案将不胜感激!
我遇到了同样的问题,导致“updatedAt”字段无限循环。