आप नीचे एकत्रीकरण का उपयोग कर सकते हैं।
संयोजन के लिए गिनती प्राप्त करने के लिए प्रश्न और उत्तर दोनों के आधार पर समूह बनाएं और उत्तर प्राप्त करने के लिए समूह द्वारा प्रश्न और उसकी गणना करें।
db.getCollection('testAggregate').aggregate([
{"$group":{
"_id":{"question":"$question","answer":"$answer"},
"count":{"$sum":1}
}},
{"$group":{
"_id":"$_id.question",
"answers":{"$push":{"answer":"$_id.answer","count":"$count"}}
}}
]);
3.4 में मनचाहा प्रारूप प्राप्त करने के लिए आप नीचे दिए गए कोड का उपयोग कर सकते हैं।
बदलें $group
k और v में कुंजियों के बाद $addFields
$arrayToObject
के साथ
सरणी को नामित कुंजी मान जोड़े में बदलने के लिए।
db.getCollection('testAggregate').aggregate([
{"$group":{
"_id":{"question":"$question","answer":"$answer"},
"count":{"$sum":1}
}},
{"$group":{
"_id":"$_id.question",
"answers":{"$push":{"k":"$_id.answer","v":"$count"}}
}},
{"$addFields":{"answers":{"$arrayToObject":"$answers"}}}
]);