Najpierw najważniejsze :-)
-
użyj
$match
jako pierwszy potok w zapytaniu w celu zwiększenia szybkości przetwarzania (mniej danych do przetworzenia) -
w
$group
możesz użyć$min
- brak konieczności sortowania szybkość :-)
Zapytanie będzie więc wyglądać tak:
db.wab.aggregate([{
$match : {
vendor_name : {
$in : ["test1", "test2"]
},
category : 'Fruit'
}
}, {
$group : {
_id : {
vendor_name : "$vendor_name",
product_name : "$product_name"
},
business_date : {
$min : "$business_date"
}
}
}
])