2017-01-16 18 views
9

Meteor'da Mongo toplaması yapmak için meteorhacks:aggregate paketini kullanıyorum. Ben bu kodu kullanın böylece boru hattının son aşamasında sayım sonucuna varmak istiyorum:

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

Oldukça basit ve çalışması gerekir, ama ben sadece bu hatayı alıyorum:

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

Lütfen yardım , Teşekkürler.

Güncellendi : bir editör önerildiği gibi bu soru değil yineleniyor, benim ana niyeti ben $count

cevap

18

$count mongodb sürüm 3.4 mevcuttur kullanamaz nedenini bulmaktır. Önceki sürümlerde, , sabit bir alan üzerinde $group kullanmanız gerekecektir.

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

Cevabınız için teşekkürler, aradığım şey değil. İşi bitirmek için '$ group' kullanabileceğimin çok iyi farkındayım, işte bu yüzden var olmama rağmen neden '$ count' kullanamadığımı merak ediyorum: – Khang

+0

'$ count' aggregation pipeeline versiyonda tanıtıldı 3.4. Hangi sürümü kullanıyorsunuz? https://jira.mongodb.org/browse/SERVER-27335 – ares

+0

Gördüğümde, kötüyüm '$ say' 'ın sadece 3.4'de mevcut olduğunu fark etmedim. Çok teşekkür ederim, lütfen cevabınızı da düzeltin lütfen doğru cevap olarak işaretleyeceğim – Khang