我正在调查一个问题,其中一些数据似乎正在消失,而在看某个文档的操作日志,落在场景中,我注意到一个奇怪的操作,我不知道这意味着什么。
{
lsid: {
id: new UUID("foo"),
uid: Binary(Buffer.from("foo", "hex"), 0)
},
txnNumber: Long("27"),
op: 'u',
ns: 'db.foo',
o: { _id: ObjectId("foo") },
o2: { _id: ObjectId("foo") },
...
}
o: { _id: ObjectId("foo") }
对文档做了什么?
2条答案
按热度按时间92vpleto1#
操作日志的格式没有文档记录,可以在次版本之间更改,因此依赖于它以某种形式包含特定数据是不可靠的。
如果您真的需要知道该结构的含义,就需要询问MongoDB开发人员或深入研究源代码。
如果您只需要知道节点上发生了哪些操作,请使用更改流
bnlyeluc2#
调试我的代码时,我发现这个操作确实是我的bug的原因,运行一个只指定
_id
的更新操作会从文档中删除除了_id
之外的所有数据。我在我的代码中发现了这个问题,这是一个使用mongoid gem的ruby应用程序,它生成了一个操作,试图在不传递块的情况下调用
model.atomically
,删除除了id之外的所有字段。