使用mongodb中的聚合请求按日期排序

jon*_*onn 5 mongodb aggregation-framework

我想检索来自当前签名的最旧文档的值列表.但是我没有选择在日期上删除的文档.谢谢

这是json:

    "ad" : "noc3",
    "createdDate" : ISODate(),
    "list" : [
            {
                    "id" : "p45",
                    "value" : 21,

            },
            {
                    "id" : "p6",
                    "value" : 20,             
            },
            {
                   "id" : "4578",     
                    "value" : 319
            }
   ]
Run Code Online (Sandbox Code Playgroud)

在这里我的总要求:

db.friends.aggregate({$match:{advertiser:"noc3", {$sort:{timestamps:-1},{$limit:1} }},{$unwind:"$list"},{$project:{_id: "$list.id", value:{$add:[0]}}});
Run Code Online (Sandbox Code Playgroud)

Der*_*ick 11

您的汇总查询不正确.您可以为匹配添加排序和限制,但现在就是这样做的.您使用不同的管道运算符:

db.friends.aggregate( [
    { $match: { advertiser: "noc3" } }, 
    { $sort: { createdDate: -1 } },
    { $limit: 1 },
Run Code Online (Sandbox Code Playgroud)

您的其他管道运营商都有点怪过了,你的代码VS查询不匹配的timestampsVS createdDate.如果添加预期输出,我可以更新答案以包括查询的最后几位.