0

我在 mongodb 中有以下数据

domain1 url1 level processed
domain1 url2 level processed
domain1 url3 level processed
domain1 url4 level processed
domain2 url5 level processed
domain2 url6 level processed
domain2 url7 level processed
domain2 url8 level processed
domain3 url9 level processed
domain3 url10 level processed
domain3 url11 level processed
domain3 url12 level processed

level是一个整数并且processed是一个布尔标志。每次我只需要选择按级别排序的每个域的一个文档。第一个查询应该返回

domain1 url1 level processed
domain2 url5 level processed
domain3 url9 level processed

在 mongodb 中最快的方法是什么?

4

1 回答 1

1

您可以使用聚合:

db.stmp.aggregate( {$sort: {domain: 1}}, 
                   {$group: {_id: '$domain', 
                             url: {$first: '$url'}, 
                             level: {$first: '$level'}, 
                             processed: {$first: '$processed'}})

如果您按排序字段(域)创建索引,或者在 $sort 之前放置一个 $match(并对其进行索引) - 这将很快完成......

于 2013-01-21T14:30:59.070 回答