插入文档
for(i=1;i<=20;i++){ db.users.insert({"uuid":i,"uname":"hxf"+i,"salary":2000+Math.round(Math.random()*5000)}) }
salary为2000-7000的随机数,Math.round四舍五入
删除文档及集合
db.users.remove({"uuid":1}) //删除指定条件的文档
db.users.remove({}) //清空整个集合
db.users.drop()
true
更新文档
文档替换
db.users.update({"uuid":2},{"uuid" : 2, "uname" : "hxf200", "salary" : 2350})
注:虽然只更新uname,但所有的数据都要写上
变量替换
a=db.users.findOne({"uuid":3})
a.uname="hxf300"
db.users.update({"uuid":3},a)
修改器$inc更新(单条)
db.users.update({"uuid" : 2},{"$inc":{"salary":1000}})
db.users.update({"uuid" : 2},{"$inc":{"salary":-1000}})
增加或删除某个字段(单条)
db.users.update({"uuid":2},{"$set":{"age":28}}) //增加一个字段
db.users.update({"uuid":2},{"$unset":{"age":1}}) //删除一个字段,此时1代表true
其他参数
db.users.update({arg1},{arg2},arg3,arg4)
参数1:条件
参数2:需要操作的更新内容
参数3:如果文档不存在是否启用插入true/false (默认false)
参数4:是否更新全部匹配的文档(默认更新第一条)true/false
验证参数3:
db.users.update({"uuid":100},{"uuid" : 100, "uname" : "hxf1", "salary" : 2998},true) //集合会新插入一条文档
验证参数4:
db.users.update({},{"$inc":{"salary":10000}},false,true)
db.users.update({"uuid":2},{"$set":{"age":28}},false,true)
数组的操作
数组的增加
示例数据:
db.users2.insert({"uuid":1,"uname":"hxf","contact":{"addr":"beijing","code":"1","qq":"1234567"},email:[]})
{"$push":{"$key":"value"}} 在数组末尾添加一元素:
db.users2.update({"uuid":1},{"$push":{"email":"a"}})
{"$pushAll":{"$key":["val1","val2","val3"]}}在数组末尾添加多个元素:
db.users2.update({"uuid":1},{"$pushAll":{"email":["b","c","d"]}})
{"$addToSet":{"$key":"value"} 向数组添加一个不重复的元素:
db.users2.update({"uuid":1},{"$addToSet":{"email":"a"}}) //此时未插入 ,因为含有a
db.users2.update({"uuid":1},{"$addToSet":{"email":"e"}}) //此时插入
{"$addToSet":{"$key":{"$each:["val1","val2","val3"]}}} 向数组添加多个不重复的元素:
db.users2.update({"uuid":1},{"$addToSet":{"email":{"$each":["e","f","g"]}}})
数组的删除
{$pop:{key:1}) 从数组末尾删除一元素:
db.users2.update({"uuid":1},{"$pop":{"email":1}})
{$pop:{key:-1}) 从数组开头删除一元素:
db.users2.update({"uuid":1},{"$pop":{"email":-1}})
{$pull:{"key":"val"}} 删除一个数组内所有等于val的值:
db.users2.update({"uuid":1},{"$pull":{"email":"b"}})
{$pullAll:{"key":["val1","val2","val3"]}} 删除所有多个数组内的值:
db.users2.update({"uuid":1},{"$pullAll":{"email":["c","d"]}})
数组的定位修改
变量修改:
a=db.users2.findOne()
a.email
[ "e", "f" ]
a.email[0]
e
a.email[0]="a"
db.users2.update({"uuid":1},a)
直接修改:
db.users2.update({"uuid":1},{"$set":{"email.1":"b"}})
文档中的文档的修改
a=db.users2.findOne()
a.contact.addr="shanghai"
db.users2.update({"uuid":1},a)