मैं इस तरह एक साधारण db लेआउट:MongoDB एकत्रीकरण के साथ गिनती और औसत की गणना कर रहा
client
id
sex (male/female)
birthday (date)
client
id
sex (male/female)
birthday (date)
(...)
मैं एक एकत्रीकरण आदेश आउटपुट कि कितने पुरुष और महिला ग्राहकों मुझे मिल गया है लिखने के लिए कोशिश कर रहा हूँ, और मैं 'पुरुषों और महिलाओं की औसत आयु को भी आउटपुट करना पसंद है, मुझे यकीन नहीं है कि मैं इसे एक ही कमांड में कर सकता हूं या मुझे 2 अलग-अलग लोगों की आवश्यकता है?
// Count of males/females, average age
Clients.aggregate({
$project : {"sex" : 1,
"sexCount" : 1,
"birthday" : 1,
"avgAge" : 1
}
},
{
$match: {"sex": {$exists: true}}
},
{
$group: {
_id : "$sex",
sexCount : { $sum: 1 },
avgAge : { $avg: "$birthday" },
}
},
{ $sort: { _id: 1 } }
, function(err, sex_dbres) {
if (err)
throw err;
else{
(...)
}
});
ऊपर दिए गए कोड के साथ मुझे नर/मादा की संख्या मिलती है, लेकिन avgAge 0. के रूप में आता है। कोई विचार?
बहुत धन्यवाद
ध्यान दें कि आपको फ़ील्ड्स सेक्स को प्रोजेक्ट करने की आवश्यकता नहीं है या पहले चरण में avgAge के रूप में उन फ़ील्ड हैं जिन्हें आप $ समूह चरण में गणना करेंगे। –