Go调用mongodb 更新数据不存在插入,存在就更新

Posted pengshaomin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go调用mongodb 更新数据不存在插入,存在就更新相关的知识,希望对你有一定的参考价值。

需求

用户提交地址可能是新增、修改 

方案

利用mongod的upset更新匹配的地址

重点

数组的操作符号

    $[].$ //当前数组的元素

代码

    r := db.C("user").Upsert( bson.M{
    "_id": id, "address.id": address.ID,},
    bson.M{"$set": bson.M{ "address.$[].$": address,"arrayFilter":bson.M{}},})

以上是关于Go调用mongodb 更新数据不存在插入,存在就更新的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb如何仅在不存在时插入(如果存在则不更新)?

如果存在,如何更新文档,如果在 mongodb 中不存在,如何将其插入?

MongoDB原子“findOrCreate”:findOne,如果不存在则插入,但不更新

mysql插入数据时,判断是不是存在,存在则替代,不存在则直接插入,需要能够批量处理。

MongoDB-更新多个文档解决方案-更新文档计数器或在不存在的情况下插入

如数据不存在就插入,存在就更新