mongodb的shell脚本是不支持批量插入的,但是我们可以通过js脚本,写个for循环进行多条记录的插入,但是一般不常用。
mongodb想要插入一条数据,除了使用insert之外,还可以使用save,两者的区别就是,insert的时候,如果指定的id已经存在,那么就会抛出异常,save则会更新数据:db.person.save({"_id":"1",name:"zhaoliu"})
删除列表中所有数据: db.[documentName].remove({}) (集合的本身和索引不会别删除)
根据条件删除 db.person.remove({name:"zhangsan"})
小技巧 :如果你想删除一个数据量十分庞大的集合,直接删除该集合并且重新建立索引,比直接用remove的效率和高很多
insertOrUpdate操作:db.person.update({name:"zhangsan"},{$set:{age:18}},true) 其中第一个参数就是修改条件,第二参数就是修改的字段,第三个参数就表示如果没有满足条件的数据,那么就执行insert操作。
批量更新操作:db.person.update({name:"lisi"},{$set:{sex:"m"}},false,true) 第四个参数为true就表示更新所有满足条件的数据,因为mongodb默认情况下只会update第一条符合条件的数据。
使用修改器来完成局部更新操作:
$addToSet与$each结合完成批量数组更新 :db.person.update({_id:1000},{$addToSet:{books:{$each:[“JS”,”DB”]}}}) ($each会循环后面的数组把每一个数值进行$addToSet操作)
runCommand函数和findAndModify函数
runCommand可以执行mongoDB中的特殊函数
findAndModify就是特殊函数之一他的用于是返回update或remove后的文档
runCommand({“findAndModify”:”processes”,
query:{查询器},
sort{排序},
new:true
update:{更新器},
remove:true
}).value
ps = db.runCommand({
"findAndModify":"persons",
"query":{"name":"text"},
"update":{"$set":{"email":"1221"}},
"new":true
}).value
do_something(ps)