现在我得到这个表(它不能超过两种{A,B,C}同时出现在同一个数据中。):
{_id:1,A:a}
{_id:2,B:b}
{_id:3,C:a}
{_id:4,A:a}
{_id:5,A:b}
{_id:6,A:c}
{_id:7,C:a}
如何获得此结果?
a:4
b:2
c:1
答案 0 :(得分:0)
你可以使用mongodb聚合框架获得这个结果,
首先,您需要在单个字段中添加所有值,并在该字段上执行 $group
:
db.collection.aggregate([{
"$project": {
"v": ["$A", "$B", "$C"]
}
}, {
"$unwind": "$v"
}, {
"$match": {
"v": {
"$ne": null
}
}
}, {
"$group": {
"_id": "$v",
"count": {
"$sum": 1
}
}
}])
结果:
[
{
"_id": "c",
"count": 1
},
{
"_id": "b",
"count": 2
},
{
"_id": "a",
"count": 4
}
]
你可以在这里试试:mongoplayground.net/p/rGHUPWsw2ee