【发布时间】:2019-02-01 14:01:01
【问题描述】:
我有一个充满类似于书籍的数据对象的数据库。这也适用于书籍版本,因此如果书籍 A 已印刷 9 次,那么我的数据库中有 9 个示例。链接这 9 个示例的是它们有一个 id,比如book_id。在我的搜索结果中,我想丢弃所有具有相同book_id 的结果,除了一个,即最近的published_date。问题是,我不确定如何让聚合正常工作。这是我现在拥有的:
return Book.aggregate([
{ $match: generateMLabQuery(rawQuery) },
{ $group: { _id: '$book_id' } },
第一个匹配只是做正常的匹配事情,比如按作者或流派或其他搜索。我的印象是$group 会用唯一的book_id 压缩所有结果,但事实并非如此,因为我得到的只是一组看起来像{ _id: earg684rthae68g486e } 的项目。如何让它返回完整的 Book 文档,但丢弃所有旧版本?
【问题讨论】:
标签: javascript node.js mongodb mongoose