update()
语法
db.集合.update(更新条件,新的对象数据,upsert, multi)
显示已有集合数据
db.students.find().skip(0).limit(5).sort({"$natural":1}).pretty();
将年龄是19岁的人的成绩都更新为100分
只更新查询的第一条数据
db.students.update({"age":19},{"$set":{"score":100}},false,false);
$set 称为修改器
将年龄是19岁的人的成绩都更新为100分
所有满足条件的数据都更新
db.students.update({"age":19},{"$set":{"score":100}},false,true);
没有年龄为30岁学生的信息,更新操作变成创建
db.students.update({"age":30},{"$set":{"name":"不存在"}},true,false);
save()
此函数与 update() 函数相似,但不常用
db.students.save({ "_id" : ObjectId("5def42ea64471b41051ee59d"),"age":50});
数据的修改会牵扯到内容的变更,结构的变更(包含数组(列表))
$inc
主要针对一个数字字段,增加某个数据字段的数据内容
语法:
{"$inc":{成员: 内容}}
查询目前的集合数据
将所有年龄为19岁的学生成绩一律减少30分,年龄加1岁
只修改第一条
db.students.update({"age":19},{"$inc":{"score":-30,"age":1}},false,false)
$set
进行内容的重新设置
{"$set":{"成员":"新内容"}}
将年龄是20岁的所有人的成绩修改为89,(只改动第一条)
db.students.update({"age":20},{"$set":{"score":89}});
$unset
删除某个成员的内容
{"$unset":{"成员",1}}
db.students.update({"name":"李四"},{"$unset":{"age":1,"score":1}});
$push
将内容追加到指定的成员之中(基本上是数组(列表))
该修改器就是进行数组(列表)数据的添加操作
{"$push":{成员:value}}
查询目前的集合数据
向李四中添加课程信息(此时李四信息下没有相应信息)
db.students.update({"name":"李四"},{"$push":{"course":["语文","数学"]}});
db.students.update({"name":"王五"},{"$push":{"course":"语文"}});
db.students.update({"name":"Wilson","age":19},{"$push":{"course":"美术"}});
$pushAll
与 $push 是类似的,可以一次追加多个内容到数组(列表中)
{"$pushAll":{"成员":数组内容}}
db.students.update({"name":"孙七"},{"$pushAll":{"course":["美术","音乐","素描"]}});
$addToSet
向数组(列表)增加一个内容,只有这个内容不存在的时候才会增加
{"$addToSet":{成员:内容}}
向"孙七"中增加舞蹈课程内容
db.students.update({"name":"孙七"},{"$addToSet":{"course":"舞蹈"}});
$pop
删除数组(列表)中的数据
{"$pop":{成员:内容}}
内容为 -1
表示删除第一个内容
内容为 1
表示删除最后一个内容
删除孙七的第一门课程
db.students.update({"name":"孙七"},{"$pop":{"course":-1}});
db.students.update({"name":"孙七"},{"$pop":{"course":1}});
$pull
从数组(列表)内删除一个指定内容的数据
{"$pull":{成员:数据}} #此处数据是进行数据比对的
删除孙七素描课程
db.students.update({"name":"孙七"},{"$pull":{"course":"素描"}});
$pullAll
一次性删除数组(列表)内多个内容
{"$pull":{成员:[数据1,数据2,...]}}
db.students.update({"name":"Wilson"},{"$pullAll":{"course":["语文","数学","英语"]}});
$rename
为成员名称重命名
{"rename":{旧成员名称:新成员名称}}
查询已有集合数据
将 刘九 name 成员名称,修改为 “姓名”
db.students.update({"name":"刘九"},{"$rename":{"name":"姓名"}});