10

我想检索来自当前签名的最旧文档的值列表。但我未能选择日期不正确的文档。谢谢

这是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]}}});
4

1 回答 1

23

您的聚合查询不正确。您将排序和限制添加到匹配中,但现在您就是这样做的。您使用不同的管道运算符:

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

您的其他管道运算符也有点奇怪,并且您的代码 vs 查询在timestampsvs上不匹配createdDate。如果您添加预期的输出,我可以更新答案以包含查询的最后一位。

于 2013-07-26T10:48:59.323 回答