хотел бы знать, как использовать агрегацию MongoDB для коллективного подсчета количества аргументов reason_id:
Я хотел бы узнать, что есть 2 подсчета за наличие "reason_id = KW7Kcsv7835YZeE3n" и 1 счет за "reason_id = KNcKQCjhFzha3oLfE".
Вот мои данные:
[
{
"_id": "2DLQFJLbZScBXpSam",
"toilet_id": "bJsyfh3TCvpTzE2mJ",
"reason_ids": [
"KNcKQCjhFzha3oLfE",
"KW7Kcsv7835YZeE3n"
],
"score_id": null,
"toilet": {
"_id": "bJsyfh3TCvpTzE2mJ",
"name": "Toilet_M_1",
"gender": "m",
"mac_address": "11:11:11:11:11:11"
}
},
{
"_id": "akjsbcjascklsacas",
"toilet_id": "bJsyfh3TCvpTzE2mJ",
"reason_ids": [
"KW7Kcsv7835YZeE3n"
],
"score_id": null,
"toilet": {
"_id": "fsgndgklndsdsdsd",
"name": "Toilet_F_1",
"gender": "f",
"mac_address": "11:11:11:11:11:11"
}
},
]
Вы можете попробовать это
db.collection.aggregate([
{
"$unwind": "$reason_ids"
},
{
"$group": {
"_id": "$reason_ids",
"count": {
"$sum": 1
}
}
}
])
Выход
[
{
"_id": "KW7Kcsv7835YZeE3n",
"count": 2
},
{
"_id": "KNcKQCjhFzha3oLfE",
"count": 1
}
]
Попробуйте здесь
db.collectionname.aggregate([ {"$unwind":"$reason_ids"}, {"$group":{"_id":"$reason_ids","count":{"$sum":1}}} ])