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": ""
}