Mongodb 按时间戳进行聚合排序不起作用
我正在尝试从我的帖子中获取所有最新的用户名评论。我试图通过以下方式获取最新记录:Mongodb 按时间戳进行聚合排序不起作用,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我正在尝试从我的帖子中获取所有最新的用户名评论。我试图通过以下方式获取最新记录: "$sort": { "rd_comments.created_at": -1 } 以下是完整的查询: [ { "$lookup": { "from": "userlist", "localField": "u_id", "foreignField": "u_id", "as": "userlist"
"$sort": {
"rd_comments.created_at": -1
}
以下是完整的查询:
[ {
"$lookup": {
"from": "userlist",
"localField": "u_id",
"foreignField": "u_id",
"as": "userlist"
} }, {
"$unwind": "$userlist" }, {
"$match": {
"status": {
"$ne": 2
}
} }, {
"$skip": 0 }, {
"$limit": 10 }, {
"$sort": {
"rd_comments.created_at": -1
} }, {
"$project": {
"username": "$userlist.username",
"_id": 1,
"comment": 1,
"created_at": 1
} } ]
它给我未分类的结果
[更新]
用户文档:
u_id | username
--------------------------
1 | Shail
--------------------------
2 | Mukky
--------------------------
评论文件:
c_id | u_id | comments | created_at
--------------------------------------------------------
1 | 1 | Nice Post3 | NumberInt(1483405261)
--------------------------------------------------------
2 | 2 | Nice Post3 | NumberInt(1483318861)
--------------------------------------------------------
3 | 2 | Nice Post2 | NumberInt(1488522534)
--------------------------------------------------------
4 | 2 | Nice Post1 | NumberInt(1488522033)
--------------------------------------------------------
5 | 1 | Nice Post2 | NumberInt(1488521530)
--------------------------------------------------------
据我所知,您将不得不展开rd_注释数组,并对单个条目进行排序。你能发布1个文档吗?这样我就可以看到结构并尝试给出更多的见解?@AndyMacleod-我已经用文档更新了我的问题,请检查。是的,我尝试添加了
“$unwind”:“$rd_comments”
,但添加后结果显示为空。您可以尝试在查找之前移动$sort吗?我假设您正在comments集合上运行聚合?或者,如果您正在进行多个调用,那么可能排序应该移到跳过/限制之前,以确保您正在跳过并限制已排序的列表?谢谢Andy,这很有效。在移动$sort之后,跳过/限制其工作罚款。。