mongodb oplog的格式

它的格式在不同版本的mongodb上有所区别,大致是:[code]PRIMARY> db.version()
2.2.2
PRIMARY> db.oplog.rs.findOne()
{
"ts" : Timestamp(1364186197000, 58),
"h" : NumberLong("-7878220425718087654"),
"v" : 2,
"op" : "u",
"ns" : "exaitem_gmsbatchtask.jdgmsbatchtask",
"o2" : {
"_id" : "83f09a98-6a41-497b-a988-99ba5399d296"
},
"o" : {
"_id" : "83f09a98-6a41-497b-a988-99ba5399d296",
"status" : 2,
"content" : "",
"type" : 17,
"business" : "832722",
"optype" : 2,
"addDate" : ISODate("2013-03-25T04:36:38.511Z"),
"modifyDate" : ISODate("2013-03-25T04:36:39.131Z"),
"source" : 5
}[/code]

ts 由4个字节的timestamp 和 4字节的自增计数器表示。

op:[code]
“i”: insert
“u”: update
“d”: delete
“c”: db cmd
“db”:声明当前数据库 (其中ns 被设置成为=>数据库名称+ ‘.’)
“n”: no op,即空操作,其会定期执行以确保时效性 。
ns:操作的namespace
o:操作对应的document,即当前操作的内容(比如更新操作时要更新的的字段和值,那些没有被更新的字段及对应的值也会在这里面)
o2:执行更新操作的条件,只有update才有该属性。[/code]