• 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 1

    Mongodb下更新记录

    Posted by 撒得一地 on 2016年3月22日 in Mongodb教程
    国外稳定加速器推荐    Express | Vypr

    MongoDB 使用 update() 和 save() 方法来更新集合中的记录。来看下两个函数的应用及其区别。

    update方法

    update() 方法用于更新已存在的文档。语法格式如下:

    db.collection.update(
       <query>,
       <update>,
       {
         upsert: <boolean>,
         multi: <boolean>,
         writeConcern: <doc>
       }
    )
    

    参数说明:

    query : update的查询条件,类似sql update查询内where后面的条件。
    
    update : update的对象和一些更新的操作符(如$age,$inc...)等,也可以理解为sql update查询内set后面的参数。
    
    upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
    
    multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
    
    writeConcern :可选,抛出异常的级别。
    

    实例:

    >db.person.insert({_id:123,name:"psz2",age:19})
    WriteResult({"nInserted":1})
    >db.person.find()
    { "_id" : ObjectId("4fb5faaf6d0f9d8ea3fc91a8"), "name" : "psz", "age" : 18 }
    {_"_id" : 123 , name : "psz2" , age : 19}
    

    然后我们通过update方法来更新年龄(age):

    >db.person.update({name:"psz"},{$set:{'age':25}})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    >db.person.find()
    { "_id" : ObjectId("4fb5faaf6d0f9d8ea3fc91a8"), "name" : "psz", "age" : 25 }
    {_"_id" : 123 , name : "psz2" , age : 19}
    

    可以看到年龄(age)由原来的18变到25。

    以上语句只会修改第一条发现的文档,如果修改多条相同的文档,则需要设置 multi 参数为 true。如:

    >db.pserson.update({name:"psz"},{$set:{'age':25}},{multi:true})
    

    save() 方法

    save() 方法通过传入的文档来替换已有文档。语法格式如下:

    db.collection.save(
       <doc>,
       {
         writeConcern: <doc>
       }
    )
    

    参数说明:

    doc : 文档数据。
    writeConcern :可选,抛出异常的级别。
    

    下面实例替换_id为123的内容,比如:

    >db.person.find()
    { "_id" : ObjectId("4fb5faaf6d0f9d8ea3fc91a8"), "name" : "psz", "age" : 25 }
    {_"_id" : 123 , name : "psz2" , age : 19}
    >db.person.save({_"_id" : 123 , name : "peter" , age : 23})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    >db.person.find()
    { "_id" : ObjectId("4fb5faaf6d0f9d8ea3fc91a8"), "name" : "psz", "age" : 25 }
    {_"_id" : 123 , name : "peter" , age : 23}
    

    更多实例

    只更新第一条记录:

    db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
    

    全部更新,如果指定更新记录不存在,直接忽略:

    db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
    

    只更新第一条,如果该条记录不存在,则重新插入该条记录:

    db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
    

    更新全部记录,如果记录不存在,重新插入不存在的全部记录:

    db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
    

    更新全部记录,如果这些记录不存在,直接忽略:

    db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
    

    只更新第一条记录,该记录不存在,直接忽略:

    db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );
    

    上一篇:

    下一篇:

    相关推荐

    1 Comment

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    3 + 8 = ?

    网站地图|广东快乐10分开奖直播

    Copyright © 2015-2019 广东快乐10分开奖直播 All rights reserved.
    闽ICP备15015576号-1,版权所有?psz.

  • 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 北京pk10规则 新疆时时彩截止 北京赛车公式走势规律 北京赛车开奖结果记录 七星彩开奖结果查询 北京赛车官网计划软件手机版式 大乐透排斥号码规律 东方6+1规则 浙江体彩20选5开奖走势 七乐彩4拖6多少钱 四川时时彩爱彩乐 北京赛车外围投注 中国体彩网排三预测 决胜21电在线观看免费 上海时时乐幵奖结果 新宝娱乐平台