目前我正在使用MongoDB,而oplog对我的应用程序至关重要。在开发过程中,我注意到有时oplog包含相同的记录(更改)3或4次。
在console.logging关于更新数据库和跟踪oplog的过程中的每一步之后,我输了。
oplogPO.on(' update',function(data){ 执行console.log(data.o) }
以上代码显示{' $ set':{status:1000}} - 有时一次,但有时为3或4次。
这是否发生在其他人身上?有人可以解释为什么会这样吗?
这也是我第一次发布到stackoverflow,所以告诉我,如果我做错了什么;)
答案 0 :(得分:0)
固定!
oplog中的更改用在套接字中,因此我将整个oplog放在连接中:
io.on('connection', function(socket){
oplogPO.on('update', function (data) { console.log(data.o) }
socket.emit('updateOrders', {data: "send the socket"});
})
这意味着每次连接时,它都会增加重复次数。
固定代码:
var socketStuff
oplogPO.on('update', function (data) {
socketStuff.emit('updateOrders', {data: "send the socket"});
}
io.on('connection', function(socket){
socketStuff = socket
socket.emit('updateOrders', {data: "send the socket"});
})
也许不是最优雅的方式,但它有效:)