Bạn cần $group
tài liệu của bạn theo "giá". Từ đó, bạn $sort
chúng theo "_id" theo thứ tự tăng dần và sử dụng $limit
để trả về tài liệu đầu tiên không có gì khác ngoài tài liệu có giá trị nhỏ nhất.
db.products.aggregate([
{ "$group": {
"_id": "$price",
"docs": { "$push": "$$ROOT" }
}},
{ "$sort": { "_id": 1 } },
{ "$limit": 1 }
])
tạo ra một cái gì đó như:
{
"_id" : 100,
"docs" : [
{
"_id" : ObjectId("574a161b17569e552e35edb5"),
"product" : "Milk",
"barcode" : 12345,
"price" : 100,
"store" : "BestBuy"
},
{
"_id" : ObjectId("574a161b17569e552e35edb6"),
"product" : "Milk",
"barcode" : 12345,
"price" : 100,
"store" : "WalMart"
}
]
}