![](/img/trans.png)
[英]Stream through whole collection with mongodb native client and node.js
[英]MongoDB oplog stream Node.js
我有一個以--master開頭的MongoDB本地實例,在啟動日志中可以看到我創建了一個副本集oplog(文件:/data/db/local.1)。 並顯示為local.1每次我執行和insert()時都會更新。
我正在嘗試使用以下代碼拖尾/流操作日志...
MongoDB.connect('mongodb://localhost:27017/test',(e,db) => { if ( e ) { return console.log('Connect MongoDB Error',e); } console.log('Connected MongoDB'); Server.DB = db; db.collection('oplog.rs').find({}).toArray((e,d) => { console.log('oplog.rs'); console.log(e); console.log(d); }) var updates = db.collection('oplog.rs').find({},{ tailable: true, awaitData: true, noCursorTimeout: true, oplogReplay: true, numberOfRetries: Number.MAX_VALUE }).stream(); updates.on('data',(data) => { console.log('data',data); }); updates.on('error',(e) => { console.log('error',e); }); updates.on('end',(end) => { console.log('end',end); }); });
該代碼在啟動時記錄以下內容...
oplog.rs null []
但是從流中沒有輸出,我將numberOfRetries設置為一個較低的值,我得到了錯誤。
error { MongoError: No more documents in tailed cursor at Function.MongoError.create (/Users/peter/node_modules/mongodb-core/lib/error.js:31:11) at nextFunction (/Users/peter/node_modules/mongodb-core/lib/cursor.js:637:50) at /Users/peter/node_modules/mongodb-core/lib/cursor.js:588:7 at queryCallback (/Users/peter/node_modules/mongodb-core/lib/cursor.js:211:18) at Callbacks.emit (/Users/peter/node_modules/mongodb-core/lib/topologies/server.js:116:3) at Connection.messageHandler (/Users/peter/node_modules/mongodb-core/lib/topologies/server.js:282:23) at Socket.<anonymous> (/Users/peter/node_modules/mongodb-core/lib/connection/connection.js:273:22) at emitOne (events.js:96:13) at Socket.emit (events.js:189:7) at readableAddChunk (_stream_readable.js:176:18) name: 'MongoError', message: 'No more documents in tailed cursor', tailable: true, awaitData: true } end undefined
oplog.rs
用於副本集 。 從--master
開始mongodb時,您正在使用已棄用的master-slave復制 ,該復制使用local.oplog.$main
數據庫,因此oplog.rs
沒有oplog.rs
。
您需要以--replSet
開頭mongod才能從副本集oplog中受益。 閱讀更多有關如何部署和配置副本集的信息 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.