次のような人のコレクションがあるとします。
{
{'_id': 1, 'name': 'Tom', 'age': 22},
{'_id': 2, 'name': 'Joe', 'age': 30}
}
コード1:
p = db.people.find_one({'_id': 1})
db.people.update(p, {'$inc': {'age': 1}})
コード2:
db.people.update({'_id': 1}, {'$inc': {'age': 1}})
pymongoではコード1とコード2が異なることがわかりました。しかし、違いはわかりません。誰か教えてもらえますか?
編集:
わかった。
pymongoのJsonドキュメントは順不同です。したがってp = db.people.find_one({'_id': 1})
、「_id」フィールドの値が1であるドキュメントとまったく同じドキュメントを返さない場合がdb.people.update(p, {'$inc': {'age': 1}})
あります。クエリpを満たすドキュメントが見つからない場合があります。