我想在mongodb中按用户查找最新的数据。
假设数据如下所示:
{
_id: "1",
user_id: "userA",
date: "2022-10-20 11:00:00.000000000"
},
{
_id: "2",
user_id: "userA",
date: "2022-10-25 18:00:00.000000000"
},
{
_id: "3",
user_id: "userB",
date: "2022-10-25 18:00:00.000000000"
},
{
_id: "4",
user_id: "userC",
date: "2022-10-25 18:00:00.000000000"
}
所以我希望找到这样的结果:
{
_id: "2",
user_id: "userA",
date: "2022-10-25 18:00:00.000000000"
},
{
_id: "3",
user_id: "userB",
date: "2022-10-25 18:00:00.000000000"
},
{
_id: "4",
user_id: "userC",
date: "2022-10-25 18:00:00.000000000"
}
最好的办法是什么?
1条答案
按热度按时间yhuiod9q1#
如果你使用的是Mongo 5.2以上版本,那么你可以使用
$group
和新的$bottom运算符,如下所示:MongoPlayground
否则,没有真实的好的方法来实现这一点,您将不得不按
date
对整个集合进行排序(假设所有日期都以正确的格式保存),然后按用户id分组并获取“最新”示例。Mongo Playground