Я пробовал искать здесь, но не смог найти то, что мне нужно. У меня есть следующие документы:Вернуться все поля MongoDB Aggregate
{
appletype:Granny,
color:Green,
datePicked:2015-01-26,
dateRipe:2015-01-24,
numPicked:3
},
{
appletype:Granny,
color:Green,
datePicked:2015-01-01,
dateRipe:2014-12-28,
numPicked:6
}
Я хотел бы вернуть только те яблоки, которые выбрали последние, все поля. Я хочу, чтобы мой запрос вернул мне первый документ только по существу. Когда я пытаюсь сделать:
db.collection.aggregate([
{ $match : { "appletype" : "Granny" } },
{ $sort : { "datePicked" : 1 } },
{ $group : { "_id" : { "appletype" : "$appletype" },
"datePicked" : { $max : "$datePicked" } },
])
Это вернуть мне все яблоки выбрали последние, однако только с appletype: Бабуля и datePicked: 2015-01-26. Мне нужны остальные поля. Я пытаюсь использовать $ project и добавлять все поля, но это не помогло мне. Кроме того, когда я добавил другие группы в группу, поскольку datePicked уникален, он возвратил обе записи.
Как я могу вернуть все поля, только для последних datePicked?
Спасибо!
Вы говорите «Я хочу, чтобы мой запрос вернул мне первый документ только по существу». Итак, вы хотите получить только один документ с последним datePicked? – stalk
Коллекция, которую я использую, составляет несколько тысяч записей. Я хотел бы получить все appleTypes, выбранные в последней datePicked, возвращая все поля, составляющие «яблочный» документ. Поэтому, если бы яблоки, выбранные в 2014-01-26 (или что бы ни случилось с последней датой), верните эти n записей. – Vince