Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
Arrays 数组中的Mongodb对象数组中的Mongodb对象_Arrays_Json_Mongodb_Object_Mongodb Query - Fatal编程技术网

Arrays 数组中的Mongodb对象数组中的Mongodb对象

Arrays 数组中的Mongodb对象数组中的Mongodb对象,arrays,json,mongodb,object,mongodb-query,Arrays,Json,Mongodb,Object,Mongodb Query,我有一个JSON数据结构: { data : { fields_data : [ [ { key1 : val }, { key1 : val } ], [ { key2 : val }, { key2 : val } ] ] } } 我很难质疑这一点,我曾尝试以其

我有一个JSON数据结构:

{
data :
{
    fields_data :
   [
     [
       {
         key1 : val
       },
       {
         key1 : val
       }
     ],
     [
       {
        key2 : val
       },
       {
       key2 : val
       }
     ]
]
}
}
我很难质疑这一点,我曾尝试以其他方式使用in和elemMatch,但没有成功

我尝试过的一个查询:

{
    "data.fields_data": {
        $in: [{
            $in: [{
                $elemMatch: 
                    {
            $elemMatch : {
                        "key1": "random text"
                        }
            }
                }]

        }]
    }
}

有什么建议吗?

嗯,嵌套的
$elemMatch
应该在这里起作用:

db.collection.find{
“数据.字段\u数据”:{
$elemMatch:{
$elemMatch:{
键1:val
}
}
}
}
<>但是你应该考虑去掉嵌套数组。例如,您可以使用array if对象代替:

{
  data: {
    fields_data: [{
      data: [
        { key1: val },
        { key1: val }
      ]}, {
      data: [
        { key2: val },
        { key2: val }
      ]}
    ]
  }
}
它将允许您使用简单的点符号查询文档:

{ 'data.fields_data.data.key1': val }