Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/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
Javascript MongoDB:过滤文档中的多个数组,然后将重复的数组返回到一个数据中_Javascript_Arrays_Mongodb_Sorting_Aggregation Framework - Fatal编程技术网

Javascript MongoDB:过滤文档中的多个数组,然后将重复的数组返回到一个数据中

Javascript MongoDB:过滤文档中的多个数组,然后将重复的数组返回到一个数据中,javascript,arrays,mongodb,sorting,aggregation-framework,Javascript,Arrays,Mongodb,Sorting,Aggregation Framework,我的数据库中有以下几组数据: [{ "id": 1, "date": "2019/11/30", "title": "Data Title", "tags": ["Javascript", "NodeJS", "Big Data", "MongoDB"], },{ "id": 2, "date": "2019/10/30", "title": "Data Title 2", "tags": ["Javascript", "React", "NodeJS", "Po

我的数据库中有以下几组数据:

[{
  "id": 1,
  "date": "2019/11/30",
  "title": "Data Title",
  "tags": ["Javascript", "NodeJS", "Big Data", "MongoDB"],
},{
  "id": 2,
  "date": "2019/10/30",
  "title": "Data Title 2",
  "tags": ["Javascript", "React", "NodeJS", "Postgres"],
}]
目前,我希望通过返回如下值的标记对数据进行分组:

[{
  "id": 1,
  "tags": "Javascript",
  "data": [{
    "date": "2019/11/30",
    "title": "Data Title",
   },{
     "date": "2019/10/30",
     "title": "Data Title 2",
   }],
   "count": 2
 }, {
   "id": 2,
   "tags": "React",
   "data": [{
     "date": "2019/10/30",
     "title": "Data Title 2",
   }],
   "count": 1
}]
问题:如何使用mongodb聚合查询获取数据?非常感谢

您需要添加
标记
数组并对其执行
$group
聚合

db.collection.aggregate([
  { "$unwind": "$tags" },
  { "$group": {
    "_id": "$tags",
    "data": {
      "$push": {
        "title": "$title",
        "date": "$date"
      }
    },
    "count": { "$sum": 1 }
  }}
])

嗨,阿什,这就是我需要的!你的答案真的很有用,供大家参考。谢谢!