0

次のクエリ

db.getCollection("xyzCollection").aggregate(
    [
     { $match:
           { "startDate": { $gte: ISODate("2021-01-21T00:00:00.000+0000") } , "markets": { $exists: true }} 
     },
     { $group: 
           { _id: "$sportName" , "count": { $sum: 1 } }
     },
    ]
)

次の出力を返します。

{ 
    "_id" : "Ice Hockey", 
    "count" : 138.0
}
{ 
    "_id" : "Basketball", 
    "count" : 141.0
}
{ 
    "_id" : "Cricket", 
    "count" : 14.0
}
{ 
    "_id" : "Volleyball", 
    "count" : 32.0
}
{ 
    "_id" : "Football", 
    "count" : 685.0
}

どうしてこれなの?そして、どうすればintを返すことができますか? Studio 3T 2020.10.1 を使用してクエリを実行しています。私はすでに $toInt を使用してみました (「1」をラップするか、「 { $sum: 1 } 」をラップします) が、期待どおりに機能しませんでした - 構文が正しくありません。

ありがとう。

4

2 に答える 2

1

クエリが JavaScript ランタイムによって実行される場合 (これはISODateMQL コンストラクトではないため、これが推奨される使用法です)、結果をレンダリングする (同じ) ランタイムには数値型が 1 つしかなく、浮動小数点型です。

整数型をサポートする別の言語で作成されたツールを使用してください。

于 2021-01-21T03:49:36.773 に答える