簡體   English   中英

MongoDB oplog流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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM