查询MongoDB中的内部数组

时间:2015-05-01 15:15:25

标签: mongodb

我收到了具有以下结构的MongoDB文档:

        {
           name:'some name here',
            someStuff: [
                {
                    type: 'banana',
                   colors:['yellow','red]
                },
                {
                    type: 'apple',
                    colors:['red','blue','orange']
                }
            ]
        }

我想查询所有包含数组中至少一种颜色的文档,例如[' red',' green']

我尝试了以下查询,但它不起作用:

‌‌db.SomeDB.find({
    "someStuff": {
        $elemMatch: {
            "colors": {
                $elemMatch: {
                    "$in": ['red', 'green']
                }
            }
        }
    }

你能给我一些提示如何写这个查询吗?

2 个答案:

答案 0 :(得分:0)

$elemMatch检查以下查询后,您遗漏的小事情未使用colors

db.collectionName.find({
  "someStuff": {
    "$elemMatch": {
      "colors": {
        "$in": ["red", "green"]
      }
    }
  }
}).pretty()

答案 1 :(得分:0)

使用 dot notation 查询嵌入文档:

db.SomeDB.find({"someStuff.colors": {"$in":  ["red", "green"]}})
相关问题