Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/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
mongoDB:数组的过滤器数组_Mongodb - Fatal编程技术网

mongoDB:数组的过滤器数组

mongoDB:数组的过滤器数组,mongodb,Mongodb,我有以下文件: { “名称”:“object1”, “子阵列”:[ { “名称”:“子对象1”, “名单”:[ { “日期”:“2020-01-01”, “名称”:“列表1” } ] } ] } 我正在尝试以下代码: db.getCollection(“表”).aggregate([ {“$match”:{“name”:“object1”}, {“$group”:{ “_id”:“$name”, “列表数组”:{ $first:“$subarray.list” } } }]) 结果是以下

我有以下文件:

{
“名称”:“object1”,
“子阵列”:[
{
“名称”:“子对象1”,
“名单”:[
{
“日期”:“2020-01-01”,
“名称”:“列表1”
}
]
}
]
}
我正在尝试以下代码:

db.getCollection(“表”).aggregate([
{“$match”:{“name”:“object1”},
{“$group”:{
“_id”:“$name”,
“列表数组”:{
$first:“$subarray.list”
} 
} 
}])
结果是以下文件:

{
“_id”:“object1”,
“列表数组”:[
[
{
“日期”:“2020-01-01”,
“名称”:“列表1”
}
]
]
}
我得到了一个数组,但我想要

{
“_id”:“object1”,
“列表数组”:[
{
“日期”:“2020-01-01”,
“名称”:“列表1”
}
]
}

我的$match始终只返回一个对象。我该怎么做?

对于您的阶段,只需添加

{
    "$project": {
      list_array: {
        "$reduce": {
          "input": "$list_array",
          "initialValue": [],
          "in": {
            "$setUnion": [
              "$$this",
              "$$value"
            ]
          }
        }
      }
    }
  }
工作

如果在
阶段之前
展开
,它还将提供预期结果