一個 , 和集合稱為測驗
考慮這個測驗集合,其中機場由 AirportID 標識:
{ AirportID:"1001", delayMinutes :"15.0" },
{ AirportID:"1004", delayMinutes :"3.0" },
{ AirportID:"1001", delayMinutes :"20.0" },
{ AirportID:"1002", delayMinutes :"6.0" },
{ AirportID:"1002", delayMinutes :"25.0" },
{ AirportID:"1004", delayMinutes :"55.0" },
我想將它組合在一起并列出該串列中的前 2 個。
這是我嘗試過的查詢:
db.test.aggregate([
{ $group: { _id: "$AirportID", delayMinutes: { $sum: 1 } } },
{ $sort: { delayMinutes: -1 } }
])
但這對我不起作用
uj5u.com熱心網友回復:
你非常接近,你只需要做兩件事:
$limit在末尾添加一個階段僅回傳 2 個結果delayMinutes使用$toDecimelor將轉換為數字$toDouble,請注意,任何無效的字串值都會使此階段失敗。
總的來說,這就是它的樣子:
db.test.aggregate([
{
$group: {
_id: "$AirportID",
delayMinutes: {
$sum: {
"$toDouble": "$delayMinutes"
}
}
}
},
{
$sort: {
delayMinutes: -1
}
},
{
$limit: 2
}
])
蒙戈游樂場
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/479380.html
