【发布时间】:2020-03-07 07:00:10
【问题描述】:
我是 MongoDB 新手,正在使用它处理 NodeJS 代码。
我需要使用聚合函数来拉取每本书的最新book_version。
这是我的数据库的外观:
[
{
"book_id": "ab12nld”,
"book_version": "0”,
"author": “Sam”,
“name”: “Sample Book”,
“comments”: “Done”
},
{
"book_id": "ab12nld”,
"book_version": "1",
"author": "Martin",
"name": "Sample Book",
“comments”: “In Progress”
},
{
"book_id": "ab12nld”,
"book_version": "2",
"author": "Roy",
"name": "Sample Book",
“comments”: “To-Do”
}
]
[
{
"book_id": "bcj123n”,
"book_version": "0”,
"author": “Don”,
“name”: “Another Book”,
“comments”: “Done”
},
{
"book_id": "bcj123n”,
"book_version": "1",
"author": "Ray",
"name": "Another Book",
“comments”: “In Progress”
},
{
"book_id": "bcj123n”,
"book_version": "2",
"author": "Max",
"name": "Another Book",
“comments”: “To-Do”
}
]
[
{
"book_id": "k23d1d3”,
"book_version": "0”,
"author": “Sunny”,
“name”: “New Book”,
“comments”: “Done”
},
{
"book_id": "k23d1d3”,
"book_version": "1",
"author": "Archer",
"name": "New Book",
“comments”: “In Progress”
}
]
[
{
"book_id": "o902f3s”,
"book_version": "0”,
"author": “Joy”,
“name”: “Nice Book”,
“comments”: “Done”
},
{
"book_id": "o902f3s”,
"book_version": "1",
"author": "James",
"name": "Nice Book",
“comments”: “In Progress”
},
{
"book_id": "o902f3s”,
"book_version": "2”,
"author": “Pam”,
“name”: “Nice Book”,
“comments”: “Done”
},
{
"book_id": "o902f3s”,
"book_version": "3",
"author": "Jonah",
"name": "Nice Book",
“comments”: “Completed”
}
]
因此,我应该为每个 book_id 以及整个对象获得 book_version 的最大值:
{
"book_id": "ab12nld”,
"book_version": "2",
"author": "Roy",
"name": "Sample Book",
“comments”: “To-Do”
},
{
"book_id": "bcj123n”,
"book_version": "2",
"author": "Max",
"name": "Another Book",
“comments”: “To-Do”
},
{
"book_id": "k23d1d3”,
"book_version": "1",
"author": "Archer",
"name": "New Book",
“comments”: “In Progress”
},
{
"book_id": "o902f3s”,
"book_version": "3",
"author": "Jonah",
"name": "Nice Book",
“comments”: “Completed”
}
【问题讨论】:
标签: mongodb mongoose aggregation-framework aggregation