2013-07-10 4 views
1

У меня есть коллекция с именем «предложения». Я хотел бы список всех уникальных значений «last_syls», где количество записей, содержащих это значение «last_syls» больше, чем 10.MongoDB запрос для различных значений полей, которые соответствуют условию

документ в этой коллекции выглядит следующим образом:

{ "_id" : ObjectId("51dd9011cf2bee3a843f215a"), 
    "last_syls" : "EY1D", 
    "last_word" : "maid"} 

Я просмотрел db.sentences.distinct('last_syls'), но не могу понять, как запросить на основе подсчета для каждого из этих различных значений.

ответ

2

Вы будете хотеть использовать aggregation framework:

db.sentences.aggregate([ 
    { 
    $group: { 
     _id: "$last_syls", 
     count: { $sum: 1} 
    } 
    }, 
    { 
    $match: { 
     count: { $gt: 10 } 
    } 
    } 
]) 

этой группы документов по их last_syls поле со счетчиком в каждой группе, а затем фильтры, результирующий набор всех результатов с count больше, чем 10.

+0

Это именно то, что я искал. Очень признателен. –