MongoDB嵌套文档的修改
mongodb是文档型的,那么如果一个文档嵌套另外一个文档,如何对这个嵌套文档进行增删改查呢,例如:
{
"_id": 1,
"author": [
{
"name": "Bob"
},
{
"name": "Alice"
},
{
"name": "Mike"
}
]
}
若是要对author内部的object进行增添、修改、删除之类的操作,需要用到$push,$pop,$pull,$set
三个修改器。
-
增加一个object:
db.collection.update({_id:1},{$push:{"author":{"name": "AnotherGuy"}}});
-
删除最后一个值,若要删除第一个则为-1:
db.collection.update({_id:1},{$pop:{"author":1});
-
删除指定筛选值:
db.collection.update({_id:1},{$pull:{"author":{"name": "Alice"}}});
-
修改第一个值的age字段(若无则添加age字段)
db.collection.update({_id:1},{$set:{"author.0.age": 19}});
附上另一篇关于$set字段的常用方法和其他update内容:http://blog.csdn.net/leshami/article/details/54930588。