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