मैं इन 3 अनुरोध है:
db.mycollection.aggregate([
{ $group: {
'_id' : { user_id: '$user_id'},
requestA_count: { $sum: {
$cond: [ {requestA:{'$exists':true}}, 1, 0 ]
} },
requestB_count: { $sum: {
$cond: [ {requestB:{'$exists':true}}, 1, 0 ]
} },
requestC_count: { $sum: {
$cond: [ {requestC:{'$exists':true}}, 1, 0 ]
} },
} },
{ $project: {
_id: 0,
user_id: '$_id.user_id',
requestA_count: 1,
requestB_count: 1,
requestC_count: 1
} }
]);
:
db.mycollection.count({requestA:{$exists:true}})
db.mycollection.count({requestB:{$exists:true}})
db.mycollection.count({requestC:{$exists:true}})
मैं केवल एक अनुरोध करना चाहते हैं ... तो मैं निम्नलिखित की कोशिश की
लेकिन मैं त्रुटि मिली:
"errmsg" : "exception: invalid operator '$exists'",
मुझे लगता है कि हम उपयोग नहीं कर सकते $ मौजूद है $ परियोजना के साथ।
एक अच्छा दृष्टिकोण के बारे में कोई सुझाव? धन्यवाद
स्पष्टीकरण के लिए नील धन्यवाद! –
असल में नील, requestA_count, requestB_count, requestC_count हमेशा एक ही मान है ...: /! मेरा मतलब है, अगर requestA_count = 9 तो requestB_count और requestC_count = 9 –
@ जॉनस्मिथ आप अलग-अलग फ़ील्ड के साथ कुछ डेटा दिखाने के लिए अपना प्रश्न संपादित कर सकते हैं। मेरे लिए यह काम करता है। यदि फ़ील्ड मौजूद नहीं है तो राशि को पास किया गया मान 0. –