4

私はmongodb 2.2を使用しています。新しい集約フレームワークを使用してドキュメントに対してクエリを実行したいのですが、要素が配列です。

$project の結果の例を次に示します。

{ 
  "type" : [
      "ads-get-yyy",
      "ads-get-zzz"
  ],
  "count" : [
      NumberLong(0),
      NumberLong(10)
  ],
  "latency" : [
      0.9790918827056885,
      0.9790918827056885
  ]
}

タイプごとにグループ化したいので、「ads-get-yyy」でカウントの平均とレイテンシの平均を知ることができます。

次のクエリに似たものが欲しいのですが、それはすべての配列の要素内で機能します。

db.test.aggregate(
{
  $project : {
    "type" : 1,
    "count" : 1,
    "latency" : 1
  }
},{
  $group : {
    _id: {type : "$type"},
    count: {$avg: "$count"},
    latency: {$avg: "$latency"}
  }
});
4

1 に答える 1

1

私も新しいAFを学んでいますが、最初$unwindにタイプをグループ化できるようにする必要があると思います。次のようなものです:

db.test.aggregate({
  $project : {
    "type" : 1,
    "count" : 1,
    "latency" : 1
  }
},{
  $unwind : "$type"
},{
  $group : {
    _id: {type : "$type"},
    count: {$avg: "$count"},
    latency: {$avg: "$latency"}
  }
});
于 2012-09-20T13:12:27.983 に答える