使用修改器时,"_id"的值不能改变,而整个文档在替换时是可以改变"_id"的。
$set用来修改一个键的值。
$unset用来删除一个键。
$inc用来增加已有键的值,或者在键不存在时创建一个键。只能用于整数、长整数、或者双精度浮点数。
$push往数组里添加东西, $pop从数组中删除元素。
{$pop : { key : 1} }从数据末尾删除一个元素
{$pop : { key : -1} }从数据头部删除一个元素
有的时候需要基于特定条件来删除元素,而不仅仅是位置,此时使用$pull
db.lists.update({},{"$pull":{"todo":"xxx"}})
它会将所有匹配的部分删掉,比如【1,1,2,2】执行pull 1,剩下的就是【2,2】
$ne---不存在时
$addToSet---增加到集合里
$addToSet和$each组合起来,可以添加多个不同的值
比如
db.user.update(
{查询条件},
{"addToSet":
{"emails" : {"$each" : ["value1" , "value2"] } }
}
}
关于数组的定位修改器
1)使用下标,比如comments.0.votes,就是这个意思。0是下标。
2)定位操作符:
db.blog.update(
{查询条件},
{"$set": {"comments.$.author":"jim"}}
)