mongo5版本oplog数据结构
op 数据的具体操作
- i 代表insert
- u 代表update
- d 代表delete
o 具体操作的数据内容
o2 更新操作的update语句
1、无嵌套字段
1.1新增数据 {a:a,b:b}
{
"op" : "i",
"o" : {
"_id" : "1",
"a" : "a",
"b" : "b"
}
}
1.2更新字段{a:a->a:a1}
{
"op" : "u",
"o" : {
"$v" : 2,
"diff" : {
"u" : {
"a" : "a1"
}
}
},
"o2" : {
"_id" : "1"
}
}
1.3删除字段a
{
"op" : "u",
"o" : {
"$v" : 2,
"diff" : {
"d" : {
"a" : false
}
}
},
"o2" : {
"_id" : "1"
},
}
1.4新增字段{c:c}
{
"op" : "u",
"o" : {
"$v" : 2,
"diff" : {
"i" : {
"c" : "c"
}
}
},
"o2" : {
"_id" : "1"
}
}
1.5修改字段名{c:c->c1:c}
{
"op" : "u",
"o" : {
"$v" : 2,
"diff" : {
"d" : {
"c" : false
},
"i" : {
"c1" : "c"
}
}
},
"o2" : {
"_id" : "1"
},
}
2.修改嵌套字段数据
2.1新增数据{a:{b:b,c:c}}
{
"op" : "i",
"o" : {
"_id" : "2",
"a" : {
"b" : "b",
"c" : "c"
}
},
}
2.2更新数据{a.b:b->a.b:b1}
{
"op" : "u",
"o" : {
"$v" : 2,
"diff" : {
"sa" : {
"u" : {
"b" : "b1"
}
}
}
},
"o2" : {
"_id" : "2"
},
}
2.3删除字段a.b
{
"op" : "u",
"o" : {
"$v" : 2,
"diff" : {
"sa" : {
"d" : {
"b" : false
}
}
}
},
"o2" : {
"_id" : "2"
},
}
2.4新增字段a.d:d
{
"op" : "u",
"o" : {
"$v" : 2,
"diff" : {
"sa" : {
"i" : {
"d" : "d"
}
}
}
},
"o2" : {
"_id" : "2"
},
}
2.5修改字段名a.d:d->a.d1:d
{
"op" : "u",
"o" : {
"$v" : 2,
"diff" : {
"sa" : {
"d" : {
"d" : false
},
"i" : {
"d1" : "d"
}
}
}
},
"o2" : {
"_id" : "2"
},
}
3、修改三级嵌套字段:
{
"op" : "u",
"o" : {
"$v" : 2,
"diff" : {
"sa" : {
"sb" : {
"u" : {
"d" : "d1"
}
}
}
}
},
"o2" : {
"_id" : "3"
},
}