MongoDB - 快速聚合,分组和分钟超过20M的记录

时间:2017-11-11 23:00:01

标签: mongodb aggregation-framework

我有2000万行与此类似,字段" type1"具有以下值1,2,3,4或5

{
    "_id" : ObjectId("59d55b0324934c04a7534d30"),
    "name" : "Maria",
    "nights" : 3,
    "price" : 322,
    "type1" : 3,
    "type2" : 4,
    "type3" : 5,
    "type4" : 3,
    "departure" : ObjectId("59d540194cb72658a4511665"),
    "destination" : ObjectId("59d5401e4cb72658a4511666"),
    "refundable" : false,
    "active" : true,
    "date_start" : ISODate("2017-04-18T18:33:14.871Z"),
    "date_end" : ISODate("2017-06-30T12:55:04.164Z"),
    "updated_at" : ISODate("2017-10-04T22:04:51.127Z"),
    "created_at" : ISODate("2017-10-04T22:04:51.127Z"),
    "__v" : 0
}

我希望找到每种类型的最低价格1

我运行以下聚合,但速度很慢

db.fakers.aggregate(
[
 {
   $group:
     {
       _id: "$type1",
       minPrice: { $min: "$price" }
     }
 }
]
) 

我还创建了以下索引

db.fakers.createIndex( { type1: 1, price: -1 } )

有什么建议吗?执行

需要大约20秒

0 个答案:

没有答案