仅由updatedAt字段触发MongoDB更改流:如何处理?

问题描述 投票:0回答:1

我将 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 字段,如何配置更改流以忽略这些更新?

任何见解或解决方案将不胜感激!

typescript mongodb mongoose changestream
1个回答
0
投票

我遇到了同样的问题,导致“updatedAt”字段无限循环。

© www.soinside.com 2019 - 2024. All rights reserved.