Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB中的查询内部数组_Mongodb - Fatal编程技术网

MongoDB中的查询内部数组

MongoDB中的查询内部数组,mongodb,Mongodb,我有一个具有以下结构的MongoDB文档: { name:'some name here', someStuff: [ { type: 'banana', colors:['yellow','red] }, { type:

我有一个具有以下结构的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']
                }
            }
        }
    }

您能给我一些如何编写此查询的提示吗?

您缺少一些小东西,请不要在
颜色之后使用
$elemMatch
检查以下查询:

db.collectionName.find({
  "someStuff": {
    "$elemMatch": {
      "colors": {
        "$in": ["red", "green"]
      }
    }
  }
}).pretty()
使用查询嵌入文档:

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

谢谢,你的解决方案很有效,但chridam的回答更“优雅”