Mongodb 仅从mongoose组/聚合操作返回原始文档
我对一堆文档(书籍)进行了筛选+分组操作。分组仅返回共享相同Mongodb 仅从mongoose组/聚合操作返回原始文档,mongodb,mongoose,mongodb-query,aggregation-framework,Mongodb,Mongoose,Mongodb Query,Aggregation Framework,我对一堆文档(书籍)进行了筛选+分组操作。分组仅返回共享相同图书id(名称)的图书的最新版本。下面的代码可以工作,但它不整洁,因为它返回冗余信息: return Book.aggregate([ { $match: generateMLabQuery(rawQuery) }, { $sort: { "published_date": -1 } }, { $group: {
图书id
(名称)的图书的最新版本。下面的代码可以工作,但它不整洁,因为它返回冗余信息:
return Book.aggregate([
{ $match: generateMLabQuery(rawQuery) },
{
$sort: {
"published_date": -1
}
},
{
$group: {
_id: "$book_id",
books: {
$first: "$$ROOT"
}
}
}
])
我最终得到一个如下所示的对象数组:
[{ _id: "aedrtgt6854earg864", books: { singleBookObject } }, {...}, {...}]
本质上,我只需要singleBookObject
部分,它是原始文档(如果我只做了$match
操作,我会得到它)。有没有办法去除聚合管道中多余的\u id
和书籍
部分?您可以使用
Book.aggregate([
{ "$match": generateMLabQuery(rawQuery) },
{ "$sort": { "published_date": -1 }},
{ "$group": {
"_id": "$book_id",
"books": { "$first": "$$ROOT" }
}},
{ "$replaceRoot": { "newRoot": "$books" } }
])