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

MongoDB修改器总结

2016-06-14 22:59 531 查看
1"$set":用来制定一个字段值,若不存在,则创建;

一般用于点加一个字段

db.users.update({name:"joe"},{"$set":{"favorite book":"War and Peace"}})

还可以修改一个字段

db.users.update({name:"joe"},{"$set":{"favorite book":"Your"}})

还可以删除

db.users.update({name:"joe"},{"$unset":{"favorite book":"Your"}})

2"$inc":增加或者减少

用来增加已有的键的值,不存在则创建一个,比如某网站的访问量

[b]d[/b][b]b.users.update({name:"joe"},{"$inc":{"score":1}})[/b]

[b] 每次访问都会增加1[/b]

[b]3"$push":会向已有的数组末尾添加一个元素,要是没有,创建一个新的数组。[/b]

[b] 比如要添加一个评论:
[b][b]db.users.update({name:"joe"},{"$push":{"comments":{"name":"joe","email":"joe@yahoo.com","conment":"nice"}}})
[/b][/b][/b]

[b][b][b] 还想添加,继续修改即可[/b][/b][/b]

db.users.update({name:"joe"},{"$push":{"comments":{"name":"bob","email":"bob@yahoo.com","conment":"good"}}})

4."$each"

"$each"与"$push"结合,可以操作复杂的数组。可以一次添加多个值

var users={"username":"joe",
"email":[
"joe@example.com",
"joe@exam.com",
"joe@yahoo.com"]}
db.users.insert(users)
db.users.find()
db.users.update({"username":"joe"},
{"$addToSet":{"email":"joe@mail.com"}})
db.users.update({"username":"joe"},
{"$addToSet":{
"email":{
"$each":["joe@qq.com","joe@Hadoop.com","joe@python.com"]}}})

结果展示:


{
"_id" : ObjectId("57600ffd73b4b5108cfff9b0"),
"username" : "joe",
"email" : [
"joe@example.com",
"joe@exam.com",
"joe@yahoo.com",
"joe@mail.com",
"joe@qq.com",
"joe@Hadoop.com",
"joe@python.com"
]
}

5"$pop""$pull"删除元素的方法。类似于堆栈中的出栈操作


db.lists.insert({"todo":["dishes","laundry","dry cleaning"]})
db.lists.find()
db.lists.update({},{"$pull":{"todo":"laundry"}})

6基于位置的修改可以使用定位操作符"$"

如: db.blog.plogs.update({"post","post_id"},

{"$inc":"comments.0.votes":1})

实际在数据库中,数组的下标很难确定,我们采用

db.blog.update({"comments.author":"Jim"},

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