getLastError
ドキュメントが更新されたのに更新されていないと表示されるのはなぜですか?
> db.contacts.find()
{ "_id" : ObjectId("509b60e7c546b6dc73f57877"), "name" : "mike" }
> db.contacts.update({}, {name: 'peter'})
> db.runCommand({getLastError: 1})
{ "n" : 0, "connectionId" : 3188, "err" : null, "ok" : 1 }
> db.contacts.find()
{ "_id" : ObjectId("509b60e7c546b6dc73f57877"), "name" : "peter" }
getLastError
n: 0
ドキュメントが明らかに更新されたにもかかわらず、が返されます。また、updatedExisting
フィールドがありません。サンプルのMongoHQデータベースでこれをリモートで実行しています。
ローカルの MongoDB インスタンスに対して実行すると、次のようにgetLastError
正しく返されます。
> db.runCommand({getLastError: 1})
{
"updatedExisting" : true,
"n" : 1,
"connectionId" : 1,
"err" : null,
"ok" : 1
}