您的位置:首页 > 数据库 > Mongodb

MongoDB 修改器 简介

2012-12-05 16:02 316 查看
下面介绍几个修改器

修改器都是以 $ 开头的

$inc//增长, increment 缩写 ,可以为负数,但必须是数字类型

$set//指定一个键值,如果存在,就修改原来的value不存在就添加,

例:

[b]db.user.update(...,{"$set" : {"hoby" : "basketball"}})[/b]

$unset//删除指定键,例:db.user.update(...,{"$unset" : {"hoby" : 1}}),经测试,键后面的参数无论跟什么值,结果都是删除键,具体什么区别未知。

$push//数组修改器,向数组内追加文档,用法同上

$ne// not equals 缩写(个人认为),不等于,

例:

> db.user.update(

... {"comments":{"$ne" : "zhangsan"}},

... {$push:{"comments":"zhangsan"}})


如果 comments 中没有 "zhangsan" 值,就添加

复杂一点的例子:

> db.user.update(

... {"comments":{"$ne" : {"pom":"zhangsan"}}},

... {$push:{"comments":{"pom":"zhangsan"}}})



如果 comments 数组中 没有 "pom" 为 "zhangsan" 的,就将该文档添加。

$addToSet//与上面的功能一样,它本身就有防止重复数据的功能,注意大小写,如果不对,会出现

Invalid modifier specified $addToset的错误提示

例:

> db.user.update(

... {"name":"zhangshan"},

... {"$addToSet":{"comments":"zhangsan"}})



$each//与 $addToSet 结合起来,可以一次添加多个值

例:

> db.user.update(

... { "_id" : ObjectId("50beee03bda33240a8297381")},

... {"$addToSet":

... {"comments" : { "$each":[

... {"user":"lisi"},{"user":"wangwu"}

... ]}}})



$pop//从数组的头部或者尾部移除元素 1:尾部,-1:头部

例:

> db.user.update(

... {"_id" : ObjectId("50beee03bda33240a8297381")},

... {$pop:{"comments":1}})

$pull//
移除特定元素,注意,会将所有匹配的元素都删除掉

例:

> db.user.update(

... {"_id" : ObjectId("50beee03bda33240a8297381")},

... {$pull:{"comments":{"people":"nihao"}}})

$ //只有一个
"$",数组的定位修改器,也就相当于将 第一个参数查找到的元素的下表 付给了 “$” 符号

例子:

>
db.user.update(

... {"comments.pom":"zhangsan"},

... {$set:{"comments.$.pom":"zhangsan23"}})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: