したがって、特定のデータポイントについては、ドキュメントがnullまたはないデータがあります。ここで がデータにヌル(Mongodb)のときに集計が正しくない
db.perfR.find({platform:"mac", "filename" : "f1.json"},{filename:1, platform:1, int_secs:1, version:1, _id:0})
{ "filename" : "f1.json", "platform" : "mac", "version" : "1.4.14", "int_secs" : 15 }
を実証するいくつかのコマンドセットは「マック」のための唯一つのエントリ
db.perfR.find({platform:"win", "filename" : "f1.json"},{filename:1, platform:1, int_secs:1, version:1, _id:0}).count()
0
を示している。ここ勝利
のエントリを示していない集約コマンドは
db.perfR.aggregate([ {$sort:{version: -1 }},{ $group:{ _id: {platform:"win", "filename" : "f1.json", version:"$version"}, avgSecs: {$avg:"$int_secs"} } }])
です
と出力
{ "_id" : { "platform" : "win", "filename" : "f1.json", "version" : "1.4.13" }, "avgSecs" : 759 }
{ "_id" : { "platform" : "win", "filename" : "f1.json", "version" : "1.4.14" }, "avgSecs" : 415.46153846153845 }
{ "_id" : { "platform" : "win", "filename" : "f1.json", "version" : "3.0.0_dev" }, "avgSecs" : 563.8333333333334 }
Mongodbはどこからデータを取得するのか、存在する値を探すためにどのように制限するのか混乱しています。
注:簡潔にするためにここでは示していない他のバージョンの他のエントリがあります。
aggregationコマンドを改善するための任意のポインタは、あなたがあなたのグループの_id仕様で文字列リテラルを提供している