使用$set来增加一个属性
删除后
修改前
修改后
修改后
db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{"$set":{"like":"123"}})
使用$set 更改一个属性
db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{"$set":{"like":["123","456","789"]}})
使用$unset来删除一个属性
db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{"$unset":{"like":"3333"}})
如要删除一个属性
db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{"$unset":{}})
$inc 用来增加属性的值 或在键不存在时创建这个键 值只能是整数 长整数 双精度浮点数 否则报错 例
{
"_id" : ObjectId("5472881298a2819b7ee66327"),
"game" : "pinball",
"name" : "joe",
"score" : 400
}
db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{"$inc":{"score":50}})
修改后
{
"_id" : ObjectId("5472881298a2819b7ee66327"),
"game" : "pinball",
"name" : "joe",
"score" : 450
}
使用$push 为一个键的末尾加入一个元素 要是没有就会创建一个新的数组 不能对非数组进行push操作 例:
db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{
$push:{
"people":{
"name" : "joe",
"like" : "lookbook"
}
}
})
使用$addToSet 为一个数组push一个 值 如果 该数组已经有相同的值 则不会添加 可避免重复
db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{ "$addToSet":{"people": "123"}})
{
"_id" : ObjectId("5472881298a2819b7ee66327"),
"game" : "pinball",
"name" : "joe",
"score" : 500,
"people" : [
{
"name" : "joe",
"like" : "lookbook"
},
"123"
]
}
注意
使用$addToSet 和 $each 灵活运用技巧 例:
db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{ "$addToSet":{"people": {"$each":["4444","5555","666"]}}})
{
"_id" : ObjectId("5472881298a2819b7ee66327"),
"game" : "pinball",
"name" : "joe",
"score" : 500,
"people" : [
{
"name" : "joe",
"like" : "lookbook"
},
"123",
"4444",
"5555",
"666"
]
}
使用$pop 来删除数组中的 第一个或者 最后一个元素 例: {$pop : {key:1}} 从数组末尾删除一个元素 {$pop : {key:-1}} 从头部删除
db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{'$pop' : {"people":1}})
删除后
{
"_id" : ObjectId("5472881298a2819b7ee66327"),
"game" : "pinball",
"name" : "joe",
"score" : 500,
"people" : [
{
"name" : "joe",
"like" : "lookbook"
},
"123",
"4444",
"5555"
]
}
使用$pull基于条件删除元素 而不是依据位置 也是数组操作 例:
db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{ "$pull" : {"people" : "4444"} })
修改前
{
"_id" : ObjectId("5472881298a2819b7ee66327"),
"pull" : {
"people" : [
"4444",
"5555"
]
},
"people" : [
"4444",
"5555",
"666"
]
}
修改后
{
"_id" : ObjectId("5472881298a2819b7ee66327"),
"pull" : {
"people" : "5555"
}
}
ps 语句
db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{"$push" : {"people" : {"$each":[{"name":"1212","password":"sadsad"},{"name":"ads","password":"adasdsa"},{"name":"23232","password":"adad"}]}}})
修改后
{
"_id" : ObjectId("5472881298a2819b7ee66327"),
"pull" : {
"people" : [
"4444",
"5555"
]
},
"people" : [
{
"name" : "aaa",
"password" : "12121"
},
{
"name" : "1212",
"password" : "sadsad"
},
{
"name" : "ads",
"password" : "adasdsa"
},
{
"name" : "23232",
"password" : "adad"
}
]
}
update 第一个参数 查询条件
第二个参数 修改内容
第三个参数 是否全部更新 true or false
第四个参数 是否启用 upsert update and insert