2015-01-18 10 views
24

मैं इस तरह कुछ दस्तावेजों दस्तावेजों का एक सेट के लिए प्रत्येक मान की घटनाओं गिनती घटते क्रम में। तो मेरी उत्पादन कुछ इस तरह होगा:मोंगो

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

मैं इस एक मोंगो कुल() के साथ किया जा सकता है लगता है, लेकिन मैं मुसीबत इस के लिए सही प्रवाह पता लगाना का एक बहुत हो रही है।

+0

यह एकत्रीकरण के माध्यम से जवाब पाने के लिए आसान है (उत्पादन होगा): "0": { "_id": "2", "गिनती": 1 }, "1": { "_id": "3", "गिनती": 1 }, "2": { "_ id": "1", "गिनती": 2 } – Disposer

+0

आपके पास प्रत्येक क्षेत्र के लिए घटनाओं की संख्या की गणना कैसे होगा? – ritmatter

उत्तर

33

आपको अपने नमूना दस्तावेज़ों के लिए के माध्यम से aggregation

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

निर्गम (अपने आवश्यक प्रारूप में नहीं) परिणाम प्राप्त कर सकते हैं:

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

यह बहुत अच्छा है, धन्यवाद! – ritmatter

+0

@ डिस्पोज़र धन्यवाद! – Wilson