MongoDB学习笔记--增、删、改(五)

  • 添加文档
    在mongodb中,用db.collection.insert()方法向集合中添加一个新的文档。此外,还可以用db.collection.update()和db.collection.save()也可通过一个补称为更新插入(upsert)的操作添加一个新文档。如果文档存在执行更新操作,返之执行插入操作。

    insert() 插入:
    db.inventory.insert( { _id: 10, type: "misc", item: "card", qty: 15 } )
    *_id的值必须唯一

    用update()插入:
    db.inventory.update(
         { type: "book", item : "journal" },
         { $set : { qty: 10 } },
         { upsert : true }
    )
    MongoDB 自动添加_id字段并赋一个唯一值。如果qty=11 不存在,则插入。


    save() 插入
    如果_id的值已存在,则执行更新,反之,插入新文档。
    db.inventory.save( { type: "book", item: "notebook", qty: 40 } )
  • 修改文档
    在MongoDB,用db.collection.update()和db.collection.save()方法修改集合中已存在的文档。
    db.collection.save()只根据_id 字段进行修改
    db.collection.update()可根据条件修改一个或多个文档。
    save()修改
    db.inventory.save(
       {
         _id: 10,
         type: "misc",
         item: "placard"
       }
    )
    update()修改
    默认情况下,update()只修改一个文档,如果multi=true,则更新符合条件的所有文档(multi update only works with $ opterators)。
    db.collection.update(
            <query>,
            <update>,
            {
                 upsert: <Boolean>,
                 multi: <Boolean>,
             }
     )
    如下测试:
    集合中原有文档:


    执行update()后:


    加上multi:true,执行结果:



    修改器:
    通常情况下,文档只会更新一部分内容。利用更新修改器,更新非常高效。更新修改器是种特殊的键,用来指定复杂的更新操作,比如调整、增加或者删除键,还可能是操作数组或者内嵌文档。

    $inc 增加或减少修改器
    用来增加或减少已有键的值,如果键不存在便自动创建。只能用于整天数、长整数或双精度浮点数。默认情况下,只更新所匹配的第一条,如果更新匹配的所有文档,需设置multi:true.
    以下为测试事例:
    不加multi:true


    加multi:true:

       
       $set修改器
       $set 用来指定一个键的值。如果该键不存在,则自动创建。跟$inc类似,如果更新多个文档需设置multi:true.事例如下:
        
      

  • 删除文档
    在MongoDB中,用db.collection.remove()执行删除,这个比较简单。以下分别为删除集合中的所有文档,删除匹配条件的文档,删除匹配条件的第一个文档。
    db.inventory.remove()
    db.inventory.remove( { type : "food" } )
    db.inventory.remove( { type : "food" }, 1 )




转载于:https://my.oschina.net/u/990629/blog/169643

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值