【发布时间】:2018-05-15 01:03:19
【问题描述】:
如果我有 user 和 post 集合
{"_id": 1, "name": "User 1"}
{"_id": 2, "name": "User 2"}
{"_id": 1, "title": "Post 1", "userId": 1, "createdAt": ISODate("2017-07-24T04:12:54.255Z")}
{"_id": 2, "title": "Post 2", "userId": 1, "createdAt": ISODate("2017-07-25T04:12:54.255Z")}
{"_id": 3, "title": "Post 1", "userId": 2, "createdAt": ISODate("2017-07-24T04:12:54.255Z")}
如何列出所有用户的最新帖子?会是这样的
{
"_id": 1,
"name": "User 1",
"post": {
"_id": 2,
"title": "Post 2",
"userId": 1,
"createdAt": ISODate("2017-07-25T04:12:54.255Z")
}
}
我知道我可以轻松使用 $lookup、$unwind post,然后按 post.createdAt 进行 $sort,但这给我留下了多余的用户(用户 1 将在帖子 1 和帖子 2 中列出两次)。
我不知道如何使用 $group 删除重复项,同时保持其他字段(名称、post.title 等)
【问题讨论】:
标签: mongodb