我有一个视频集合,每个视频文档都有user_id。我需要获取每个用户的最后5个视频。
不知道从哪里开始...尝试分组没有成功。
任何帮助将不胜感激。
尝试一下此管道:
db.collection.aggregate([
{
$sort: { _id: -1 }
},
{
$group: {
_id: "$user_id",
videos: { $push: "$$ROOT" }
}
},
{
$project: {
_id: 0,
user_id: "$_id",
videos: { $slice: ["$videos", 5] }
}
}
])