mongodb crud 之 update

mongodb更新的方法:

在查的基础之上,update就显的简单多了,

    官方提供的修改的方法有:

               db.collection.update()

               db.collection.updateOne()

               db.collection.updateMany()

               db.collection.replaceOne()

     除此之外还有以下方法:

                   db.collection.findOneAndReplace()

                   db.collection.findOneAndUpdate()

                   db.collection.findOneAndModify()

                   db.collection.save()

                   db.collection.bulkWrite()

    默认的update()是使用指定新值替换的成一个新的文档,例如test集合中存在这个文档:{_id:1,name:"gy",addr:"shanghai"},

    假如使用db.test.update({name:"gy"},{addr:"nantong"}),目的是想将name="gy"的数据找出来,将addr修改为"nantong",事实上经过操作,

    该数据变为{ "_id" : 1, "addr" : "nantong" },除了_id,其余没出现的字段全部被移除了,想直接实现这个功能就只有将第二个参数换成一个完整文档了。

    事实上,只需要加一个操作符就没那么麻烦了,更新后的语法为db.test.update({name:"gy"},{$set:{addr:"nantong"}})

update()方法第三个参数为upsert,值为false或true,upsert=update+insert,即找到对应数据,发生修改,找不到就插入。

除了$set还有

     $inc,$currentDate,$min,$max,$mul,$rename,$setOnInsert(2.4的版本,即当发生未有满足条件插入新文档的时候,同时添加该字段和默认值。用作初始化数据的场景),$unset(删除)

  除此之外,还有数组的修改操作符:

      $,数组第一个元素,例如"array.$"代表array数组中的第一个元素

      $addToSet,在该数组中添加不存在的值

      $pop,值为-1或1对应移除该数组的第一个或最后一个元素

      $pull,全都匹配才移除元素值

      $pullAll,已弃用

      $push,可向该数组重复添加值

      $pushAll,移除任意匹配的元素值

       以上操作符的修饰符,用来搭配操作符使用:

                   $each,   搭配$push和$addToSet使用

                   $position,指定添加元素在数组中的位置

                   $slice,指定$push操作影响数组的大小,比如原来数组上存在2个元素,$slice 值为3,限制$push最多向该数组添加一个数组元素

                   $sort,搭配$push使用,指定数组元素添加的顺序

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值