Eze*_*eon 2 mongoose mongodb express
我已经使用 Express.js、Mongoose 和 MongoDB 创建了一个 JSON API。目前,API 的客户端无法检查集合中的数据是否已更改 - 他们需要定期下载整个集合。
我如何允许 API 的客户端在不下载集合本身的情况下检查集合的更改(插入、更新、删除)?
有没有办法使用 Mongoose 获取集合的版本号、上次更改时间戳或集合的散列?这个问题的最佳实践解决方案是什么?
在当前和早期版本的 MongoDB 中,您必须在应用程序端执行此操作,可能使用轮询。
MongoDB 3.6 有一个名为更改流的全新功能,允许您实时监听集合上发生的更改。
用于侦听集合上发生的选定更改的示例代码如下:
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)
})
})
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 node.js,则需要使用以下 node 模块来使其工作:
"dependencies": {
"mongodb": "mongodb/node-mongodb-native#3.0.0"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2273 次 |
| 最近记录: |