MongoDB查询满足条件的不同字段值

时间:2013-07-10 20:38:53

标签: mongodb

我有一个名为'句子'的集合。我想要一个'last_syls'的所有唯一值的列表,其中包含'last_syls'值的条目数大于10。

此集合中的文档如下所示:

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

我调查了db.sentences.distinct('last_syls'),但无法弄清楚如何根据每个不同值的计数进行查询。

1 个答案:

答案 0 :(得分:2)

您将要使用aggregation framework

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

此文档按其last_syls字段对每个组的计数进行分组,然后将结果集过滤为count大于10的所有结果。