D'après votre description, il semble que vous vouliez un document pour chacun des types de pomme de votre collection et que vous affichiez le document avec le plus récent datePicked
valeur.
Voici une requête agrégée pour cela :
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" } }
])
Mais d'après la requête agrégée que vous avez écrite, il semble que vous essayez d'obtenir ceci :
db.collection.find({appletype: "Granny"}).sort({datePicked: -1}).limit(1);