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

时间:2013-07-26 10:28:07

标签: mongodb aggregation-framework

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

这是json:

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

            },
            {
                    "id" : "p6",
                    "value" : 20,             
            },
            {
                   "id" : "4578",     
                    "value" : 319
            }
   ]

这里是我的汇总请求:

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

1 个答案:

答案 0 :(得分:7)

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

db.friends.aggregate( [
    { $match: { advertiser: "noc3" } }, 
    { $sort: { createdDate: -1 } },
    { $limit: 1 },

您的其他管道运营商也有点奇怪,您的代码与查询在timestamps vs createdDate上不匹配。如果添加预期输出,我可以更新答案以包括查询的最后几位。