У меня есть фильтр + групповая операция с кучей документов (книг).Группировка должна возвращать только последние версии книг с одинаковым book_id
(имя).Приведенный ниже код работает, но он неопрятный, так как он возвращает избыточную информацию:
return Book.aggregate([
{ $match: generateMLabQuery(rawQuery) },
{
$sort: {
"published_date": -1
}
},
{
$group: {
_id: "$book_id",
books: {
$first: "$$ROOT"
}
}
}
])
Я получаю массив объектов, который выглядит следующим образом:
[{ _id: "aedrtgt6854earg864", books: { singleBookObject } }, {...}, {...}]
По сути, мне нужно толькоsingleBookObject
часть, которая является исходным документом (и что я получу, если сделаю только операцию $match
).Есть ли способ избавиться от лишних _id
и books
частей в конвейере агрегации?