即使文档存在,对oplog的Mongodb查询也会失败

时间:2014-06-18 18:57:20

标签: mongodb find timestamp

rs0:PRIMARY> db.oplog.rs.find( { }, { ts: 1} ).sort( {$natural : 1} ).limit(1)
{ "ts" : Timestamp(1403030678, 90) }
rs0:PRIMARY> db.oplog.rs.find({ "ts" :  Timestamp(1403030678, 90)}).count()
0

直到最近,我们才和平地使用mongo-connector。我们修复了我们的数据库,因为mongo-connector失败了。在调试时,我们发现基于Timestamp的oplog上的查询失败。我们已将查询简化为与find返回的'ts'的直接匹配。令人惊讶的是,mongo无法找到刚刚返回的文档。 有关可能发生的事情的任何建议? 我们正在使用mongo db 2.4.6。

我们查看了此MongoDB Cannot find entry by specifing ts.t(ts is a Timestamp type)以确保我们的查询正确无误。

1 个答案:

答案 0 :(得分:0)

你基本上就是这样:Index on ts field in oplog.rs is not updated

mongodb复制使用特殊的优化方法将数据插入到oplog上限集合中。部分优化是它不会更新集合上的任何索引。