文档的更新和删除

  • 更新文档的方法:

    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 })

MongoDB_05_更新和删除的更多相关文章

  1. Entity Framework 6 Recipes 2nd Edition(10-10)译 - > 为TPH继承的插入、更新、删除操作映射到存储过程

    10-10. 为TPH继承的插入.更新.删除操作映射到存储过程 问题 TPH继承模型,想把它的插入.修改.删除操作映射到存储过程 Solution 假设数据库有一个描述不同种类的产品表(Product ...

  2. ASP.NET MVC对WebAPI接口操作(添加,更新和删除)

    昨天<怎样操作WebAPI接口(显示数据)>http://www.cnblogs.com/insus/p/5670401.html 既有使用jQuery,也有使作HttpClient来从数 ...

  3. MongoDB学习笔记~大叔分享批量添加—批量更新—批量删除

    回到目录 说它是批量操作,就是说将集合对象一次提交到服务器,并对数据进行持久化,如果您的代码是一次一次的提交,那不算是批量操作!在之前的mongodb仓储中并没有对批量更新和批量删除进行实现,而今天在 ...

  4. mysql中更新或者删除语句中子语句不能操作同一个表You can't specify target table 'test' for update in FROM clause

    问题描述:有个数据表test,有个字段value,如下 mysql> select * from test;+----+------------------------------------+ ...

  5. SQL图形化操作设置级联更新和删除

    SQL级联操作设置   对SQL数据库的表,进行级联操作(如级联更新及删除),首先需要设置表的主外键关系,有两种方法:   第一种:   1. 选择你要进行操作的数据库   2. 为你要创建关系的两个 ...

  6. MySQL(四) 数据表的插入、更新、删除数据

    序言 数据表的插入.更新.删除非常简单,但是简单的也要学习,细节决定成败. ---WH 一.插入数据 格式:INSERT INTO 表名(字段名...)VALUES(值...); 创建环境 使用per ...

  7. PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)

    原文: PHP5: mysqli 插入, 查询, 更新和删除  Insert Update Delete Using mysqli (CRUD) PHP 5 及以上版本建议使用以下方式连接 MySQL ...

  8. 整理sqlserver 级联更新和删除 c#调用存储过程返回值

    整理一下级联更新和删除 c#调用返回值 use master go IF exists(select 1 from sysdatabases where name='temp') BEGIN DROP ...

  9. Hibernate批处理操作优化 (批量插入、更新与删除)

    问题描述 我开发的网站加了个新功能:需要在线上处理表数据的批量合并和更新,昨天下午发布上线,执行该功能后,服务器的load突然增高,变化曲线异常,SA教育了我一番,让我尽快处理,将CPU负载降低. 工 ...

随机推荐

  1. tensorflow expand_dims和squeeze

    有时我们会碰到升维或降维的需求,比如现在有一个图像样本,形状是 [height, width, channels],我们需要把它输入到已经训练好的模型中做分类,而模型定义的输入变量是一个batch,即 ...

  2. Mysql中FIND_IN_SET()和IN区别简析

    来源:http://www.jb51.net/article/125744.htm 测试SQL: CREATE TABLE `test` ( `id` int(8) NOT NULL auto_inc ...

  3. 环境配置 | 安装Jupyter Notebook及jupyter_contrib_nbextensions库实现代码自动补全

    一.Jupyter Notebook的安装与启动 安装Jupyter Notebook pip3 install jupyter 启动 jupyter notebook 输入命令后会自动弹出浏览器窗口 ...

  4. C# Enumerable

    使用Enumerable.Range 打印数字0到9 static void Main(string[] args) { , ); //Range方法获取两个int参数:一个起始数,一个是要生成的结果 ...

  5. WebService 之 SoapHeader

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  6. HBuilderX开发app实现自动更新版本

      需求说明:使用MUI+Vue等技术并且通过HBuilderX打包开发移动app,在有版本更新时需要自动提示用户有新版本,并且可以点击下载自动安装. 思路说明: 应用打开时(使用Vue的生命周期mo ...

  7. BFC(块级格式化上下文)笔记

    BFC特性: 1.BFC是一个独立的布局容器,内部元素不会影响BFC外面的元素,反之亦然. 2.计算BFC高度时,会计算内部的浮动元素. 3.BFC会阻止外边距的合并. 4.BFC的区域不会与外部浮动 ...

  8. vue中什么是模块 什么是组件?

    模块: 封装好的应用程序,它只是js文件的封装. 组件: 一个完整的单位个体,可以有js可以有css和html. 作者:晋飞翔手机号(微信同步):17812718961希望本篇文章 能给正在学习 前端 ...

  9. element模态框dialog中的select组件中选中无反应无显示

    https://blog.csdn.net/PGguoqi/article/details/90240650 在vue里,当你对一个不存在的属性或对象直接“.”进行赋值,或者对数组不存在的索引项直接用 ...

  10. 关于gets读入因为缓冲区出现的问题

    今天被一个同学丢了代码求debug 然后发现bug挺有意思的,稍微记录一下 首先我们读入的东西都会被丢进缓冲区等待接收,比如abc\n,如果你使用scanf读入的话,它在读入到\n的时候就会提取它需要 ...