初学mongodb的可能和我一样有个疑问。mongodb是文档型的,那么假设一个文档嵌套另外一个文档,假设对这个嵌套文档进行增删改查呢。

就像例如以下这样:Mongodb嵌套文档的改动-利用数组改动器更新数据-LMLPHP。怎样对auther里面的name进行增删改查呢?这篇博客我们一起来看一下。

这里要用到几个改动器:$push,$pop,$pull

  • 首先添加一个name:
db.myFirstCollection.update({_id:1},{$push:{"auther":{"name":1}}})
  • 删除最后一个值,若要删除第一个值则为-1
db.myFirstCollection.update({_id:1},{$pop:{"auther":1}})
  • 删除指定值
db.myFirstCollection.update({_id:1},{$pull:{"auther":{"name":1}}})
  • 假设要给auther中第一个值加一个age字段
db.myFirstCollection.update({"_id" :1},{$set:{"auther.0.age":22}})
04-21 06:43