我以前见过这个问题,但答案很模糊。我一直在oplog上做一些研究,并试图了解它是如何工作的。特别是,我想对oplog文档中的字段以及它们存储的数据有一个很好的理解。oplog字段实际上意味着什么?
这些都是我已经经历了测试,发现我认为他们的意思是还有什么,我仍然不确定的领域:
- TS:写操作的时间戳/ OPLOG进入
- h:oplog条目的唯一标识符(但为什么它有时为正数,有时为负数?)
- op:执行的操作类型(通常用于插入,更新或删除的i/u/d)
- ns:数据库&受影响集合
- o:执行更改后文档的新状态
- o2:似乎在更新操作期间包含文档的_id字段。为什么当同一字段作为o字段的一部分出现时需要这个字段,该字段还包含文档的其余部分?
- b:似乎是删除操作中出现的bool。这个领域的重要性是什么?
我想确认我上面提出的观点是否准确,以及澄清不明确的位。我也很想知道是否有任何其他字段可以出现在oplog文档中。
大部分是http://stackoverflow.com/questions/17878835/what-does-the-h-in-oplog-rs-document-stand-for但是b字段:没有人似乎真的知道什么它是,它似乎没有记录。 – Sammaye 2014-11-14 18:08:39
SO链接有正确的AFAIK说明。有意识的是,oplog的格式没有记录,因为它意味着实现细节,而MongoDB想要保留调整或完全更改oplog机制的能力。记录它会有意或无意地产生期望。 – wdberkeley 2014-11-14 18:47:26