【问题标题】:mongodb upsert with condition带有条件的mongodb upsert
【发布时间】:2017-08-07 17:55:48
【问题描述】:

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

我在 mongodb 中有这个文档:

  1. {name:"david", last_name:"family_name", published:true}

现在得到一个像这样的新文档:

  1. {name:"david", last_name:"family_name_changed", published:false}

现在我想替换数据库中的文档(文档 1) 这只会更新 last_name 字段(或任何其他字段),但我不希望它更新已发布的字段。 (永远)

这样做的方法是什么?

谢谢

【问题讨论】:

    标签: mongodb conditional-statements pymongo upsert


    【解决方案1】:

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

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

    【讨论】:

    • 您好,谢谢您的帮助。但问题是我不想知道需要更新哪些特定字段......我唯一想做的就是能够更新整个文档但留下几个字段,即使它们出现在我要更新的新文档...
    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 2015-11-30
    • 1970-01-01
    • 2020-09-06
    • 2023-01-16
    • 1970-01-01
    • 2018-04-07
    • 2020-02-18
    相关资源
    最近更新 更多