mongodb 查询求助,嵌套数组里面查东西

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb 查询求助,嵌套数组里面查东西相关的知识,希望对你有一定的参考价值。

直接在程序里把不匹配的数组元素滤掉最简单了。会作为个体被查询的数据最好不要放在数组里面,mongodb的查询对数组元素是比较弱的,以前(2.2或者2.4以前)没有$elemMatch操作符,连查询一个特定元素符合两个条件都做不到,只能查询数组里面存在符合这两个条件的元素。举例来说就是既可能命中array:[a:1,b:1]也可能命中array:[a:1,b:1]。
因此我认为把商品单列出来会比较合适。
参考技术A 提取子数组就行了

Mongodb嵌套文档的修改-利用数组修改器更新数据

初学mongodb的可能和我一样有个疑问,mongodb是文档型的,那么如果一个文档嵌套另外一个文档,如果对这个嵌套文档进行增删改查呢。
就像如下这样:技术分享,如何对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}})

以上是关于mongodb 查询求助,嵌套数组里面查东西的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb嵌套文档的修改-利用数组修改器更新数据

MongoDB 查询技巧(3) - 数组操作

mongodb 怎么用id数组in查询

在 MongoDb 中查询嵌套数组

MongoDB:如何查询嵌套数组?

Mongodb:查询嵌套数组的大小