mongodb upsert with condition

时间:2017-08-07 17:55:49

标签: mongodb conditional-statements pymongo upsert

有没有办法让mongodb批量upsert,但选择在插入和更新时要做什么。 例如:

我在mongodb中有这个文件:

  1. {name:"david", last_name:"family_name", published:true}
  2. 现在到达一个类似这样的新文档:

    1. {name:"david", last_name:"family_name_changed", published:false}
    2. 现在我要替换DB中的文档(文档1) 只会更新last_name字段(或任何其他字段),但我不希望它更新已发布的字段。 (曾经)

      这样做的方法是什么?

      谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用$set更新特定字段,例如:

db.<name of your collection>.update(<query>,
{
    $set:
    {
        last_name: <value to set>
    }
}, { multi: true } );