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
。不管怎么说,我建议添加你已经尝试过的内容…简单地说就是。在您发布此答案后不久,我发现放松了