MongoDB collection.watch() 方法

Mongodb watch() 方法可以监视集合中的数据变化并返回相应的变化流。当集合中的数据发生变化时,watch() 方法将返回相应的文档或文档的变化,如插入、更新或删除文档等。

语法

watch() 方法的语法如下:

db.collection.watch(pipeline, options)

其中,pipelineoptions 都是可选参数。

使用场景

使用 watch() 方法可以方便地监视集合中的数据变化,特别是在需要实时处理数据时非常有用,如数据同步、实时分析等场景。

示例

下面是一个使用 watch() 方法的完整示例:

创建一个连接

const MongoClient = require("mongodb").MongoClient
const uri = "mongodb://localhost:27017/test"
const client = new MongoClient(uri, {
  useNewUrlParser: true,
  useUnifiedTopology: true
})

连接数据库并创建集合

client.connect((err) => {
  const collection = client.db("test").collection("users")

  const changeStream = collection.watch()

  changeStream.on("change", (next) => {
    console.log(next)
  })

  collection.insertOne({ name: "Tom", age: 18 })

  collection.updateOne({ name: "Tom" }, { $set: { age: 20 } })

  collection.deleteOne({ name: "Tom" })

  client.close()
})

在上面的例子中,我们首先使用 MongoClient 连接到数据库,并创建了一个名为 users 的集合。然后,我们调用 watch() 方法来监视集合中的数据变化,并将变化流打印到控制台上。接着,我们插入、更新和删除一些文档,这些操作会触发 watch() 方法返回相应的变化流。最后,我们关闭了与数据库的连接。

结论

Mongodb watch() 方法可以方便地监视集合中的数据变化,特别是在需要实时处理数据时非常有用。在开发实时应用程序或进行数据同步和实时分析时,可以使用该方法来监听数据变化流。