私はこのようなデータを持っています。他のフィールドを返す集約クエリ
{
"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)
}
私はmistakes
が最小と私はので、$グループにdate
のための最後の$、$まず、$最高を$分を使用することはできません対応date
あるbadgeId
でグループ化された書類が必要mistakes
が最も低い行からdate
が必要です。
私は$min
を使用しています次のクエリを試してみましたが、それはあなたがmistakes
で結果をソートし、次にかかる場合がありますdate
db.Badges.aggregate([
{
$match: otherMatchConditions
},
{
$group: {
_id: '$badgeId',
date: {
$min: '$date'
},
mistakes: {
$min: '$mistakes'
}
}
}
])
申し訳ありませんが、質問のための手作りのサンプルです。 –
それは問題ありませんが、それは仕事です。私のデモのようにうまくいきます。データの検索に懸念や問題がある場合は、データを投稿してください。 –