Mongodb的增删改

1 插入文档

   db.persons.insert({name:"wangli"})

 

2 批量插入文档

shell不支持批量插入,可以用shell的for语句完成或者用mongo的应用驱动,java 操作mongo的api支持批量操作

for(var i=1;i<=10;i++){ db.persons.insert({name:i});}

 

3 save操作

   save操作和insert的区别在于当遇到_id相同情况下的时候

   save会完成保存操作,会有更新操作

   insert会报错

 

4 删除列表中所有数据,但是集合本身和索引不会被删除

   db.persons.remove()

 

5 根据条件删除

db.persons.remove({name:"wangli"})

6 强硬的文档替换式更新操作,会用新的文档替换老的文档

db.persons.update({ _id:"002"},{age:29})

 

7 主键冲突的时候会报错并且停止更新操作

db.persons.update({ _id:"002"},{ _id:"001",age:29})

如果文档里面有_id="001"的主键则会报错

 

8 insertOrUpdate操作

  查出来就执行更新操作,查不出来就执行新增操作

  db.persons.update({ _id:3},{age:40},true) 则完成新增 结果如下 {age:40}

 

9 批量更新操作,必须与修改器相配合

   db.persons.update({age:80},{$set:{age:100}},false,true),就可以修改多条数据

 

10 $set 存在进行修改,不存在进行添加

   db.persons.update({ name:4},{$set:{age:27}})

 

 11$inc用来增加已有键的值或者在键不存在的时候创建一个键

    db.persons.update({ _id:4},{$inc:{age:1}})

 

12 $unset去掉集合中的某个键

    db.persons.update({ _id:4},{$unset:{age:1}})

 

13$push,只能用于数组,会像数组末尾加上一个元素,要是没有会创建一个新数组

 db.persons.update({_id:4},{$push:{books:"ajax"}})

db.persons.update({_id:4},{$push:{comments:{name:"cl",address:"dy",age:13}}})

 

 14$pushAll添加数组全部值

 db.persons.update({_id:3},{$pushAll:{books:["js","ajax","c" ]}})

 

 15$addToSet把值添加到数组里面去,如果数组里面有该值,就不添加进去,没有就添加进去,非批量只能一个

  db.persons.update({pid:"11"},{$addToSet:{books:"c++"}})

  


 16 $pop删除数组中的元素,-1删除数组中第一个元素,1删除数组中最后一个元素

  db.persons.update({pid:"11"},{$pop:{books:-1}})

 

17 $pull删除数组中某个元素

    db.persons.update({pid:"11"},{$pull:{books:"c++"}})

 

18$pullAll删除数组中多个元素

   db.persons.update({pid:"11"},{$pullAll:{books:["ajax","c++"]}})

 

19$数组定位修改器,只会修改第一个查找到的值

     db.persons.update({"comments.name":"aa"},{$set:{"comments.$.age":21}  }) ==db.persons.update({"comments.name":"aa"},{$set:{"comments.0.age":21}  })

 

20 $addToSet和$each组合一起使用完成批量数组更新

    db.persons.update({_id:5},{$addToSet:{books:{$each:["js","mysq"]}}})
 

   

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值