1

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

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

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

我已经研究过db.sentences.distinct('last_syls'),但无法弄清楚如何根据这些不同值中的每一个的计数进行查询。

4

1 回答 1

2

您将要使用聚合框架

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

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

于 2013-07-10T20:57:15.403 回答