我有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秒