Mongodb 按多个字段分组并按日期排序后返回第一个文档的全部内容
我有一份结构类似于:Mongodb 按多个字段分组并按日期排序后返回第一个文档的全部内容,mongodb,mongodb-query,Mongodb,Mongodb Query,我有一份结构类似于: { "field1" : "1_of_5_options" "field2" : "1_of_5_options" "field3" : "1_of_5_options" "data1" : "value1" "data2" : "value2" "data3" : "value3" "created" : { $date : { }} } } 我想按字段1、字段2和字段3的所有组合对上
{
"field1" : "1_of_5_options"
"field2" : "1_of_5_options"
"field3" : "1_of_5_options"
"data1" : "value1"
"data2" : "value2"
"data3" : "value3"
"created" : {
$date : { }}
}
}
我想按字段1、字段2和字段3的所有组合对上述内容进行分组,然后按创建日期降序排序,并将该文档的所有内容作为返回集的一部分返回
我原以为我会使用
$group
,然后是$sort
,但当$first
要求您指定一个字段时,我就陷入了如何返回所有内容的困境,而实际上我想返回整个文档。不太清楚您的意思。您可以始终使用“doc”:{“$first”:“$$ROOT”}
,它将引用整个文档,但这当然意味着将其分配给单个字段,例如“doc”
,而您的整个文档将位于该字段下。当然,也可以指定需要返回的“每个”字段,并使用$first
。在你的问题中(没有你尝试过的,或者没有任何期望的结果),你甚至都不相信你的期望是正确的,或者你的期望是现实的。通常在使用$group
时,“整个文档”是最不需要的。Blakes,感谢您的反馈。您将$$ROOT分配给字段的建议对我很有用。