oplog字段实际上意味着什么?

时间:2014-11-14 17:17:00

标签: mongodb

我之前看到过这个问题,但答案非常模糊。我一直在对oplog进行一些研究,并试图准确理解它是如何工作的。特别是,我希望能够很好地理解oplog文档中的字段以及它们存储的数据。

这些是我通过测试找到的字段以及我认为的含义以及我仍然不确定的内容:

  • ts:写操作/ oplog条目的时间戳
  • h:oplog条目的唯一标识符(但为什么它有时是正面的,有时是负面的?)
  • op:执行的操作类型(通常是插入,更新或删除的i / u / d)
  • ns:数据库&受影响的集合
  • o:执行更改后文档的新状态
  • o2:在更新操作期间似乎包含文档的_id字段。当相同的字段作为o字段的一部分出现时,为什么还需要这个字段,o字段还包含文档的其余部分?
  • b:似乎是为删除操作显示的bool。这个领域有什么意义?

我想确认我上面提出的观点是否准确,以及对不清楚的位的澄清。我也有兴趣知道是否有任何其他字段可以出现在oplog文档中。

1 个答案:

答案 0 :(得分:5)

  • h是哈希(签名为Long)
  • ts是内部时间戳格式(" \ x11"类型显示在bsonspec.org;在api.mongodb.org上搜索驱动程序的API文档以获取更多信息)
  • 你对op,ns,o和o2
  • 是正确的
  • 还有一个" v"字段(我将推测这是版本,这将允许他们更新oplog的架构)。
  • 对于我能找到的所有删除操作,
  • b为True,因此我无法提供任何信息。

我发现的最佳文档来源是this。这是一家名为Stripe的公司在2014年的MongoDB世界大会上的演示,它包含一些示例Ruby代码。