2017-01-16 15 views
9

है I मीटर्स में मोंगो एकत्रीकरण करने के लिए meteorhacks:aggregate पैकेज का उपयोग कर रहा हूं। मैं तो मैं इस कोड का उपयोग पाइप लाइन के अंतिम चरण में गिनती प्राप्त करना चाहते हैं:

Message.aggregate([ 
    { 
    $match: { 
     // ... 
    } 
    }, { 
    $count: 'count' 
    } 
]); 

यह बहुत आसान है और काम करना चाहिए, लेकिन मैं केवल इस त्रुटि मिलती है:

Exception while invoking method 'methodname' 
MongoError: Unrecognized pipeline stage name: '$count' 
... 

कृपया मदद , धन्यवाद।

अपडेट किया गया: इस सवाल दोहराया नहीं है के रूप में एक संपादक का सुझाव दिया है, मेरे मुख्य उद्देश्य पता लगाने के लिए कारण है कि मैं उपयोग नहीं कर सकते $count

उत्तर

18

$count MongoDB संस्करण 3.4 में उपलब्ध है। पिछले संस्करणों के लिए, आपको निरंतर फ़ील्ड पर $group का उपयोग करने की आवश्यकता होगी।

Message.aggregate([ 
    { 
    $match: { 
     // ... 
    } 
    }, { 
    $group: { 
     _id : null, 
     count : {$sum : 1} 
    } 
    } 
]); 
+0

आपके उत्तर के लिए धन्यवाद हालांकि यह वह नहीं है जिसे मैं ढूंढ रहा हूं। मुझे अच्छी तरह से पता है कि मैं नौकरी खत्म करने के लिए '$ समूह' का उपयोग कर सकता हूं, बात यह है कि मुझे आश्चर्य है कि मैं इस तथ्य के बावजूद '$ count' का उपयोग क्यों नहीं कर सका कि यह – Khang

+0

' $ count' समेकन पाइपलाइन संस्करण में पेश किया गया था 3.4। आपके द्वारा कौन सा संस्करण उपयोग किया जा रहा है? https://jira.mongodb.org/browse/SERVER-27335 – ares

+0

ओह, मैं देखता हूं, मेरा बुरा मैंने नोटिस नहीं किया कि '$ count' केवल 3.4 में उपलब्ध है। बहुत बहुत धन्यवाद, कृपया अपना उत्तर संपादित करें, मैं इसे सही उत्तर के रूप में चिह्नित करूंगा – Khang

संबंधित मुद्दे