我有一个类似的SQL:
SELECT *
FROM (
SELECT Row_number() OVER(PARTITION BY bpid ORDER BY LoginTime DESC) rn, userid
FROM xxx_table) t
WHERE rn <= 3
如何在mongodb中执行此操作?我写这样的查询:
{$sort:{"LatestLoginTime":-1}},
{"$limit":2000},
{
$group:{
_id:"$BPID",
items:{
$push:{
userId:'$UserID',
date:'$LatestLoginTime'
}
}
}
}
答案 0 :(得分:0)
https://docs.mongodb.com/manual/reference/operator/aggregation/last/
$最后 返回将表达式应用于按字段共享同一组的一组文档中的最后一个文档所产生的值。仅在文档按照定义的顺序时才有意义。
检查第一个例子