2015-01-18 22 views
24

belgelerin kümesi için her değerin yineleme sayısını azalan düzende. Yani benim çıktısı şu şekilde olacaktır: Mongo Böyle bazı belgeler var

{ 
    '1': 2, 
    '2': 1, 
    '3': 1 
} 

Bunun bir Mongo agrega() ile yapılabilir düşünüyorum, ama bunun için doğru akışını endam bir sürü sorun yaşıyorum.

+0

olan birleştirme yoluyla cevap almak kolaydır (çıkış): "0": { "_id": "2", "say": 1 }, "1": { "_id": "3", "sayılan": 1 }, "2": { "_ID": "1", "sayılan": 2 } – Disposer

+0

nasıl her bir alana ait yineleme sayısını hesaplamak ki? – ritmatter

cevap

33

sahibi olması için örnek belgeler için aggregation

db.collection.aggregate(
    {$group : { _id : '$user', count : {$sum : 1}}} 
).result 

çıkışı aracılığıyla (sizin gerekli biçimde değil) sonucu alabilirsiniz geçerli:

"0" : { 
    "_id" : "2", 
    "count" : 1 
}, 
"1" : { 
    "_id" : "3", 
    "count" : 1 
}, 
"2" : { 
    "_id" : "1", 
    "count" : 2 
} 
+0

Bu harika, teşekkürler! – ritmatter

+0

@Disposer teşekkür ederim! – Wilson