【发布时间】:2019-06-26 14:19:27
【问题描述】:
我对一堆文档(书籍)进行了过滤+分组操作。分组是只返回共享相同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 部分?
【问题讨论】:
标签: mongodb mongoose mongodb-query aggregation-framework