MongoDB oplog随机重复

时间:2017-08-22 14:46:54

标签: javascript mongodb

目前我正在使用MongoDB,而oplog对我的应用程序至关重要。在开发过程中,我注意到有时oplog包含相同的记录(更改)3或4次。

在console.logging关于更新数据库和跟踪oplog的过程中的每一步之后,我输了。

  

oplogPO.on(' update',function(data){    执行console.log(data.o)   }

以上代码显示{' $ set':{status:1000}} - 有时一次,但有时为3或4次。

这是否发生在其他人身上?有人可以解释为什么会这样吗?

这也是我第一次发布到stackoverflow,所以告诉我,如果我做错了什么;)

1 个答案:

答案 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"});
})

也许不是最优雅的方式,但它有效:)