Javascript MongoDB地图册,带“地图”;“完整文件”;启用仅返回更改的项目,而不是完整文档

Javascript MongoDB地图册,带“地图”;“完整文件”;启用仅返回更改的项目,而不是完整文档,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我正在尝试使用MongoDB Atlas的触发器来通知我收藏中文档的更改。我希望接收其中有任何数据更改的完整文档,并在收到更改通知后使用该完整文档。在触发器配置中,有一个用于启用/禁用“完整文档”的滑块,其描述如下: 打开“完整文档”后,您将收到创建的文档或 在您的更改事件中修改。对于删除操作,完整的 文档将不存在 但是,无论是否启用该滑块,我都会得到相同的结果 以下是我的更改侦听器代码: const client = new MongoClient(uri, { useNewUrlParser

我正在尝试使用MongoDB Atlas的触发器来通知我收藏中文档的更改。我希望接收其中有任何数据更改的完整文档,并在收到更改通知后使用该完整文档。在触发器配置中,有一个用于启用/禁用“完整文档”的滑块,其描述如下:

打开“完整文档”后,您将收到创建的文档或 在您的更改事件中修改。对于删除操作,完整的 文档将不存在

但是,无论是否启用该滑块,我都会得到相同的结果

以下是我的更改侦听器代码:

const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true  })
await client.connect().then(db => {
    const collection = client.db("database_name").collection("collection_name")
    const changeStream = collection.watch()
    changeStream.on("change", async data => {
        console.log("Detected database change on", Date())
        console.log(data) // only returns changed data
    })
})
以下是示例输出,如上所述,尽管触发器配置不同,但它不包括完整文档:

{
  _id: {
    _data: '82606C926E000000012B022C0100296E5A10049008F3458DF14719A9225DF7AB403CEC46645F69640064606C76124670930F9A1F657C0004'
  },
  operationType: 'update',
  clusterTime: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1617728110 },
  ns: { db: 'database_name', coll: 'collection_name' },
  documentKey: { _id: 606c76124670930f9a1f657c },
  updateDescription: {
    updatedFields: {
      my_data: 'my changed data',
      created: 1617728109618
    },
    removedFields: []
  }
}
完整文档应如下所示:

{
  _id: 606c76124670930f9a1f657c,
  myKey: 'something that never changed',
  my_data: 'my changed data',
  created: 1617728109618,
  expires: 'some time in seconds that never changed',
  other_info: 'something that never changed'
}

任何帮助都将不胜感激。。。e、 g.是否需要在触发器配置中添加函数以返回完整文档?如果是这样的话,这样的函数会是什么样子?

我通常不喜欢回答自己的问题,但我想我还是会把答案贴在这里,以备其他人需要

在进一步挖掘之后,它看起来像是
collection.watch()
可以接受选项。在Atlas中启用完整文档后,我的代码需要:

const changeStream = collection.watch([], { fullDocument: 'updateLookup' })

现在,完整文档按预期返回。我找到的文档来自和。

触发器和更改流之间有什么联系?