mongodb批量更新,在$ set期间自动$ $设置缺少的字段

时间:2016-02-24 01:32:01

标签: mongodb

我在更新前在数据库中有这个:

{'id': 1, 'updating_this': 'a', 'removing_this': 'x'}

现在我打电话给更新:

item = {'id': 1, 'updating_this': b'}
bulk.find({'id': item['id']}).update({'$set': item})

我得到的结果是:

{'id': 1, 'updating_this': 'b', 'removing_this': 'x'}

我想要的结果是:

{'id': 1, 'updating_this': 'b'}

基本上我希望update命令删除所有缺少的字段,而不用$ unset操作指定它们,即完全覆盖文档。

我该怎么做?

更新让这与replace_one()

一起使用

1 个答案:

答案 0 :(得分:0)

您应该直接在不使用update

的集合上使用$set
item = {'id': 1, 'updating_this': b'}
bulk.update({'id': item['id']}, item)

https://docs.mongodb.org/manual/reference/method/db.collection.update/#replace-a-document-entirely