zoukankan      html  css  js  c++  java
  • MongoDB_05_更新和删除

    文档的更新和删除

    • 更新文档的方法:

      db.collection.update(query,update,options)
      //或
      db.collection.update(
      	<query>,                   --类似于sql中的where 字句
          <update>,			       --要更新的字段值
          {
              upsert: <boolean>,
              multi: <boolean>,
              writeConcern: <document>,
              collection: <document>,
              arrayFilters: [<filterdocument1 >,...],
              hint: <document|String>
          }
      )
      -------------------------------------------------------
      
      示例:
       (1):覆盖的修改 ---不推荐
         如果我们想修改_id为1的记录,点赞量会520,这输入以下语句
      db.comment.update({_id:"1"},{likenum:NumberInt(520)})
      
      执行后我们发现,这条文档除了likenum字段,其它字段都不见了
      
      (2):局部修改---使用 $set修改器
      db.comment.update({_id:"2"},{$set:{likenum:NumberInt(520)}})
      
      执行:
      > db.comment.update({_id:"2"},{$set:{likenum:NumberInt(520)}})
      WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
      
      > db.comment.findOne({_id:"2"})             #查找
      {
              "_id" : "2",
              "articleid" : "100002",
              "content" : "我爱你,绩憨憨2",
              "userid" : "1002",
              "nickname" : "hanhan",
              "createdatetime" : ISODate("2020-02-27T14:17:24.708Z"),
              "likenum" : 520,
              "state" : null
      }
      
      
      (3);批量修改
      修改所有nickname:"hanhan" 为 "jihanhan"
      
      > db.comment.find({})
      { "_id" : ObjectId("5e57cc7d24335849dc4a2ab8"), "articleid" : "100000", "content" : "我爱你,中国", "userid" : "1001", "nickname" : "Rose", "createdatetime" : ISODate("2020-02-27T14:04:45.459Z"), "likenum" : 10, "state" : null }
      { "_id" : "2", "articleid" : "100002", "content" : "我爱你,绩憨憨2", "userid" : "1002", "nickname" : "hanhan", "createdatetime" : ISODate("2020-02-27T14:17:24.708Z"), "likenum" : 520, "state" : null }
      { "_id" : "3", "articleid" : "100003", "content" : "我爱你,绩憨憨3", "userid" : "1003", "nickname" : "hanhan", "createdatetime" : ISODate("2020-02-27T14:17:24.709Z"), "likenum" : 10, "state" : null }
      { "_id" : "4", "articleid" : "100004", "content" : "我爱你,绩憨憨4", "userid" : "1004", "nickname" : "hanhan", "createdatetime" : ISODate("2020-02-27T14:17:24.709Z"), "likenum" : 10, "state" : null }
      
      //默认只修改第一条匹配的数据
      db.comment.update({nickname:"hanhan"},{$set:{nickname:"jihanhan"}})
      
      //修改所有符合条件的数据---添加字段{multi:true}
      db.comment.update({nickname:"hanhan"},{$set:{nickname:"jihanhan2"}},{multi:true})
      
      
      执行 :
      > db.comment.update({nickname:"hanhan"},{$set:{nickname:"jihanhan"}})
      WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
      
      > db.comment.update({nickname:"hanhan"},{$set:{nickname:"jihanhan2"}},{multi:true})
      WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
      
      
      (4):列值增长的修改
       实现对某列值在原有值的基础上进行增长或者减少,可以使用$inc运算符来实现。
      需求:对3号数据的点赞数,每次递增1
      db.comment.update({_id:"3"},{$inc:{likenum:NumberInt(1)}})
      
      执行:
      > db.comment.update({_id:"3"},{$inc:{likenum:NumberInt(1)}})
      WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
      
    • 删除文档

      删除文档的语法结构
      db.集合名称.remove(条件)
      
      以下语句可以全部删除:------慎用
      db.comment.remove({})
          
      
      如果删除_id="2"的记录
      执行:
      db.comment.remove({_id:"2"})
      WriteResult({ "nRemoved" : 1 })
      
  • 相关阅读:
    深入浅出java的Map
    退役划水(7)
    .NET 云原生架构师训练营(模块二 基础巩固 EF Core 关系)--学习笔记
    .NET 云原生架构师训练营(模块二 基础巩固 EF Core 基础与配置)--学习笔记
    .NET 云原生架构师训练营(模块二 基础巩固 EF Core 介绍)--学习笔记
    .NET 云原生架构师训练营(模块二 基础巩固 MySQL环境准备)--学习笔记
    .NET 云原生架构师训练营(模块二 基础巩固 MVC终结点)--学习笔记
    .NET 云原生架构师训练营(模块二 基础巩固 路由与终结点)--学习笔记
    .NET 云原生架构师训练营(模块二 基础巩固 HTTP管道与中间件)--学习笔记
    .NET 云原生架构师训练营(模块二 基础巩固 REST && RESTful)--学习笔记
  • 原文地址:https://www.cnblogs.com/zhoujun007/p/12377347.html
Copyright © 2011-2022 走看看