我有看起來像這樣的數據。聚合查詢返回其他字段
{
"badgeId" : "ventura",
"date" : ISODate("2016-12-22T21:26:40.382+0000"),
"mistakes" : NumberInt(10)
}
{
"_id" : "a4usNGibIu",
"badgeId" : "dog",
"date" : ISODate("2016-12-21T21:26:40.382+0000"),
"mistakes" : NumberInt(10)
}
{
"_id" : ObjectId("580c77801d7723f3f7fe0e77"),
"badgeId" : "dog",
"date" : ISODate("2016-11-24T21:26:41.382+0000"),
"mistakes" : NumberInt(5)
}
我需要badgeId
分組的文件,其中mistakes
最小和相應的date
我不能用$分鐘,$最大,$第一,$倒數第一的date
在$組,因爲我需要mistakes
最低的行中的date
。
我嘗試下面的查詢在那裏我使用$min
,但它不會給預期的結果,因爲它會挑的date
db.Badges.aggregate([
{
$match: otherMatchConditions
},
{
$group: {
_id: '$badgeId',
date: {
$min: '$date'
},
mistakes: {
$min: '$mistakes'
}
}
}
])
對不起,這是針對該問題的手工代碼示例。 –
這很好,但它的工作。就像在我的演示中一樣,它運行良好。如果您對查找數據有任何疑慮或問題,請發佈您的數據,以便我可以幫助您。 –