假设我有一个这样的人员集合:
{
{'_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}})
我发现代码 1 和代码 2 在 pymongo 中是不同的。但我不知道有什么区别。谁能告诉我?
编辑:
我知道了。
pymongo 中的 Json 文档是乱序的。因此p = db.people.find_one({'_id': 1})
可能不会返回与 '_id' 字段值为 1 的文档完全相同的文档。db.people.update(p, {'$inc': {'age': 1}})
可能找不到任何满足查询 p 的文档。