我在这里尝试搜索,但并没有找到我需要的东西。我有这样的文件:
我想要只返回最近采摘的苹果,且需要所有字段。基本上,我希望我的查询仅返回第一个文档。当我尝试进行以下操作时:
它确实返回了我最近采摘的所有Granny类型苹果,但只有datePicked为2015-01-26。我需要剩余的字段。我尝试使用$project并添加所有字段,但它没有得到我所需的结果。此外,当我将其他字段添加到组中时,由于datePicked是唯一的,它返回了两条记录。
我该如何返回所有字段,仅限于最新的datePicked?
谢谢!
{
appletype:Granny,
color:Green,
datePicked:2015-01-26,
dateRipe:2015-01-24,
numPicked:3
},
{
appletype:Granny,
color:Green,
datePicked:2015-01-01,
dateRipe:2014-12-28,
numPicked:6
}
我想要只返回最近采摘的苹果,且需要所有字段。基本上,我希望我的查询仅返回第一个文档。当我尝试进行以下操作时:
db.collection.aggregate([
{ $match : { "appletype" : "Granny" } },
{ $sort : { "datePicked" : 1 } },
{ $group : { "_id" : { "appletype" : "$appletype" },
"datePicked" : { $max : "$datePicked" } },
])
它确实返回了我最近采摘的所有Granny类型苹果,但只有datePicked为2015-01-26。我需要剩余的字段。我尝试使用$project并添加所有字段,但它没有得到我所需的结果。此外,当我将其他字段添加到组中时,由于datePicked是唯一的,它返回了两条记录。
我该如何返回所有字段,仅限于最新的datePicked?
谢谢!