gpt4 book ai didi

MongoDB 系统配置文件集合 : no data for "insert" operations?

转载 作者:可可西里 更新时间:2023-11-01 10:44:35 28 4
gpt4 key购买 nike

我已经配置了我的 MongoDB 2.0.2 实例(更新:也在 v2.2.0 实例上进行了尝试)以将所有操作记录到 system.profile 集合(即 db .setProfilingLevel(2)) 并试图准确查看应用程序在为 文档调用 save() 时插入的数据。

我可以在 system.profile 集合中看到“插入”操作,但它不包括正在插入的数据。这是为什么?

相比之下,system.profile 中记录的更新操作有一个显示数据的“updateobj”属性。

这是一个来自 2.2.0 实例的示例。如您所见,配置文件日志包含一个包含“updateObj”数据的更新条目。但是,插入内容没有关于插入内容的任何信息。

> use test;
switched to db test
> db.getProfilingStatus();
{ "was" : 2, "slowms" : 100 }
> show collections;
cartoons
system.indexes
system.profile
> db.foobar.insert({ "blah": true });
> db.foobar.update({ "blah": true }, { $set: { blerg: 1 } });
> db.system.profile.find({ ns:"test.foobar" });
{
"ts": ISODate("2012-09-25T20:37:40.287Z"),
"op": "insert",
"ns": "test.foobar",
"keyUpdates": 0,
"numYield": 0,
"lockStats": {
"timeLockedMicros": {
"r": NumberLong(0),
"w": NumberLong(2028)
},
"timeAcquiringMicros": {
"r": NumberLong(0),
"w": NumberLong(10)
}
},
"millis": 2,
"client": "127.0.0.1",
"user": ""
}{
"ts": ISODate("2012-09-25T20:38:11.454Z"),
"op": "update",
"ns": "test.foobar",
"query": {
"blah": true
},
"updateobj": {
"$set": {
"blerg": 1
}
},
"nscanned": 1,
"moved": true,
"nmoved": 1,
"nupdated": 1,
"keyUpdates": 0,
"numYield": 0,
"lockStats": {
"timeLockedMicros": {
"r": NumberLong(0),
"w": NumberLong(1797)
},
"timeAcquiringMicros": {
"r": NumberLong(0),
"w": NumberLong(9)
}
},
"millis": 1,
"client": "127.0.0.1",
"user": ""
}

最佳答案

很抱歉最初误导了您,事实证明这是故意的(我最初的回复是关于这是一个日志记录速度慢的错误)。不这样做背后的想法是,您可以通过打开它来自动将写入负载加倍,因为您实际上只是将相同的信息(实际上多了一点)写入了两次。

由于分析的想法通常是为了解决性能问题,因此这还没有作为默认实现。但是,它已被要求作为一个选项:

https://jira.mongodb.org/browse/SERVER-3848

如您所见,它尚未安排一个版本,但概述为什么这有用的投票和评论在决定实现什么时会有所帮助。

关于MongoDB 系统配置文件集合 : no data for "insert" operations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12308293/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com