gpt4 book ai didi

mongodb - 如何检查集合是否已更改?

转载 作者:行者123 更新时间:2023-12-02 14:21:35 24 4
gpt4 key购买 nike

我使用 Express.js、Mongoose 和 MongoDB 创建了一个 JSON API。目前,API 的客户端无法检查集合中的数据是否已更改 - 他们需要定期下载整个集合。

如何允许 API 的客户端检查集合的更改(插入、更新、删除)而不下载集合本身?

有没有办法使用 Mongoose 获取集合的版本号、最后更改时间戳或集合的哈希值?此问题的最佳实践解决方案是什么?

最佳答案

在 MongoDB 的当前版本和早期版本中,您必须在应用程序端执行此操作,可能使用轮询。

MongoDB 3.6 有一个全新的功能,名为 change stream这使您可以实时监听您的收藏中发生的变化。

用于监听集合中发生的选定更改的示例代码如下:

var MongoClient = require('mongodb').MongoClient
, assert = require('assert');
MongoClient.connect("mongodb://172.16.0.110:27017/myproject?readConcern=majority").then(function(client){
var db = client.db('myproject')
var changeStreams = db.collection('documents').watch()
changeStreams.on('change', function(change){
console.log(change)
})

})

如果您使用的是node.js,则需要使用以下节点模块才能使其正常工作:

"dependencies": {
"mongodb": "mongodb/node-mongodb-native#3.0.0"
}

关于mongodb - 如何检查集合是否已更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47121752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com