文档的更新和删除

  • 更新文档的方法:

    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. 求a^b的约数对mod取模

    +; int prime[maxn]; void marktable(int n){ memset(prime,,sizeof(prime)); ;i<=n;i++){ ]]=i; ;j< ...

  2. hdu1005 矩阵快速幂

    #include<iostream> #include<cstdio> #include<cstring> #include<set> #include ...

  3. Linux系统编程、网络编程-文件I/O

    第一章:文件io 1. 文件io讲些什么 文件io这一章讲的是,如何调用Linux OS所提供的相关的OS API,实现文件的读写. 1.1 如何理解“文件IO”这个词 IO就是input outpu ...

  4. main中的argv和argc

    int main(int argc,char* argv[]) 给程序传递命令行参数:第一个参数的值是第二个参数的数组元素个数,即统计运行程序时送给main函数的命令行参数个数. 第二个参数总是cha ...

  5. MAC MAMP集成环境安装 PHP 扩展

    MAC MAMP集成环境安装 PHP扩展 开发环境中,对于需要维护很多 WEB 站点,以及可能会使用到很多不同的 PHP 版本,集成环境比较好用,在MAC 上 MAMP 集成环境是比较好用的,但是在安 ...

  6. jQuery---入口函数的写法

    入口函数的写法 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&quo ...

  7. WMITools修复wmi劫持--hao643.com/jtsh123劫持(修改快捷方式跳转至hao123.com)

    >症状:所有浏览器快捷方式,都被加上尾巴,例如IE的:"C:\Program Files\Internet Explorer\iexplore.exe" http://hao ...

  8. Python中super的用法【转载】

    Python中super的用法[转载] 转载dxk_093812 最后发布于2019-02-17 20:12:18 阅读数 1143  收藏 展开 转载自 Python面向对象中super用法与MRO ...

  9. onvif学习一:wsdl 和soap

    来源:https://www.cnblogs.com/huanghongbo/p/5920123.html WSDL是用来描述WebService的,它用XML的格式描述了WebService有哪些方 ...

  10. 面试官所问的--Token认证

    写这一篇文章的来源是因为某一天的我被面试官提问:让你设计一个登录页面,你会如何设计? 我当时的脑子只有??? 不就是提交账号.密码给后台就搞定了呢? 不可能那么简单,我弱弱的想,难道要对密码加密?? ...