Từ mô tả của bạn, có vẻ như bạn muốn một tài liệu cho mỗi loại táo trong bộ sưu tập của mình và hiển thị tài liệu với datePicked
gần đây nhất giá trị.
Đây là một truy vấn tổng hợp cho điều đó:
db.collection.aggregate([
{ $sort: { "datePicked": -1 },
{ $group: { _id: "$appletype", color: { $first: "$color" }, datePicked: { $first: "$datePicked" }, dateRipe: { $first: "$dateRipe" }, numPicked: { $first: "$numPicked" } } },
{ $project: { _id: 0, color: 1, datePicked: 1, dateRipe: 1, numPicked: 1, appletype: "$_id" } }
])
Nhưng sau đó dựa trên truy vấn tổng hợp bạn đã viết, có vẻ như bạn đang cố gắng đạt được điều này:
db.collection.find({appletype: "Granny"}).sort({datePicked: -1}).limit(1);