2017-01-16 5 views
9

Ich verwende meteorhacks:aggregate Paket, um Mongo-Aggregation in Meteor zu tun. Ich mag die Zählung in der letzten Stufe der Pipeline bekommen, damit ich diesen Code verwenden:

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

Es ist ziemlich einfach und sollte funktionieren, aber ich habe nur diesen Fehler:

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

Bitte helfen , Vielen Dank.

Aktualisiert: diese Frage nicht als Redakteur vorgeschlagen, meine Hauptabsicht dupliziert ist, um herauszufinden, warum ich nicht $count

Antwort

18

$count verfügbar 3.4 in mongodb Version verwenden kann. Für frühere Versionen, , müssen Sie $group über ein konstantes Feld verwenden.

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

Danke für Ihre Antwort, obwohl es nicht das ist, was ich suche. Ich bin mir bewusst, dass ich $ Gruppe verwenden konnte, um den Job zu beenden, die Sache ist ich frage mich nur, warum ich '$ count' nicht verwenden konnte, trotz der Tatsache, dass es existiert – Khang

+0

' $ count' Aggregation Pipeline wurde in der Version eingeführt 3.4. Welche Version verwendest du? https://jira.mongodb.org/browse/SERVER-27335 – ares

+0

oh ich sehe, mein Schlechter habe ich nicht bemerkt "$ count" ist nur in 3.4 verfügbar. Vielen Dank, auch bitte editieren Sie Ihre Antwort Ich werde es als die richtige Antwort markieren – Khang

Verwandte Themen