0.练习数据
先插入练习数据
db.stu.insert([{"name" : "郭靖", "hometown" : "蒙古", "age" : 20, "gender" : true },
{"name" : "黄蓉", "hometown" : "桃花岛", "age" : 18, "gender" : false },
{"name" : "华筝", "hometown" : "蒙古", "age" : 18, "gender" : false },
{"name" : "黄药师", "hometown" : "桃花岛", "age" : 40, "gender" : true },
{"name" : "段誉", "hometown" : "大理", "age" : 16, "gender" : true },
{"name" : "段王爷", "hometown" : "大理", "age" : 45, "gender" : true },
{"name" : "洪七公", "hometown" : "桃花岛", "age" : 50, "gender" : true }])
1.$set
局部修改,不存在则新增该字段
db.stu.update({hometown:"蒙古"},{$set:{age:18,height:170}})
db.stu.update({hometown:"蒙古"},{$set:{age:10}})
# 注意: update()命令默认只更新第一个文档,如果想批量修改,可以增加{multi:true}
2.$unset
删除字段,指定key,值是多少都不影响。好像并非真的删除,只是把它置为null
db.stu.update({hometown:"蒙古"},{$unset:{height:170}})
3.$inc
$inc可以实现变量的自增自减,即支持负数,字段不存在则新增
db.stu.update({hometown:"蒙古"},{$inc:{age:2}}) # age字段自增2
4.$push
$push是在数组的末尾追加一个元素
db.stu.update({hometown:"蒙古"},{$set:{list:[1,2,3,4,5]}}) # 新增一个列表
db.stu.update({hometown:"蒙古"},{$push:{list:6}}) # 追加元素
5.$pull
$push是删除数组的一个元素,如果有多个相同元素,会全都被删除
db.stu.update({hometown:"蒙古"},{$pull:{list:6}})
6.$pop
$pop也是删除元素,不过它删除的是最后一个或第一个元素,值只能选1或-1