आप $unwind कर सकते हैं प्रति तत्व एकल दस्तावेज़ प्राप्त करने के लिए अपनी सरणी और फिर चलाएं $group तत्वों की गणना करने के लिए:
db.collection.aggregate([
{
$unwind: "$elements"
},
{
$group: {
_id: "$elements",
count: { $sum: 1 }
}
}
])
संपादित करें:आप $replaceRoot और $arrayToObject अपने आईडी को कुंजी के रूप में वापस करने के लिए और मूल्यों के रूप में गिना जाता है:
db.collection.aggregate([
{
$unwind: "$elements"
},
{
$group: {
_id: "$elements",
count: { $sum: 1 }
}
},
{
$group: {
_id: null,
counts: { $push: { k: "$_id", v: "$count" } }
}
},
{
$replaceRoot: {
newRoot: { $arrayToObject: "$counts" }
}
}
])