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_Distinct Values - Fatal编程技术网

Javascript 获取MongoDB中数组属性值的计数

Javascript 获取MongoDB中数组属性值的计数,javascript,arrays,mongodb,distinct-values,Javascript,Arrays,Mongodb,Distinct Values,给定数据如下 [ { _id:1, data:["abc", "def", "hij", "klm", "nop"]}, { _id:2, data:["abc", "def", "hij"]}, { _id:3, data:["abc", "hij"]}, { _id:4, data:["abc", "def", "hij", "klm", "nop"]}, { _id:5, data:["def", "hij", "klm"]}, ] 我正在尝试获得

给定数据如下

[
    { _id:1, data:["abc", "def", "hij", "klm", "nop"]},
    { _id:2, data:["abc", "def", "hij"]},
    { _id:3, data:["abc", "hij"]},
    { _id:4, data:["abc", "def", "hij", "klm", "nop"]},
    { _id:5, data:["def", "hij", "klm"]},
]
我正在尝试获得如下查询结果

[
    { "abc": 4 },
    { "def": 4 },
    { "hij": 5 },
    { "klm": 3 },
    { "nop": 2 },
]
其中,数字是每个数据属性数组字符串值的计数


我一直在使用聚合管道方法进行研究,但似乎应该有一种更简单的方法。

您应该能够使用+的聚合管道来实现这一点。例如:

db.col.aggregate([{$unwind:"$data"}, {$group: {_id: "$data", data: {$sum: 1}}}])
返回:

{ "_id" : "nop", "data" : 2.0 }
{ "_id" : "abc", "data" : 4.0 }
{ "_id" : "def", "data" : 4.0 }
{ "_id" : "hij", "data" : 5.0 }
{ "_id" : "klm", "data" : 3.0 }

这些数据在
javascript
中可用吗?您会接受使用javascript的数组方法的答案吗?我一直在mongoDB CLI客户端中构建查询,但最终目标环境是一个nodejs应用程序。我正在使用javascriptI,我只能提供一个解决方案,您可以在
Javascript
端处理数据,但我相信您希望它已经处理到
Javascript
。不管怎么说,我建议添加你已经尝试过的内容…简单地说就是。在您发布此答案后不久,我发现
放松了