2017-03-13 15 views
0

私は洞察ダッシュボードを作成しています。私はいくつかのデータを持っていて、これを数えますが、これを1つのドキュメントにまとめる必要があります。 (うまく言葉で説明するのは難しい)。MongoDB - 複数のクエリと単一のドキュメントの結果

サイトコレクション:

{ 
Name: "..." 
ApiKey: "SomeUnique1" 
Insights: 
{ 
    sumOfData: 5, 
    anotherSum: 14 
} 
}, 
{ 
    Name: "..." 
    ApiKey: "SomeUnique2" 
    Insights: 
    { 
     sumOfData: 5, 
     anotherSum: 1 
    } 
    },... 

私は、データを以下の隣に取得したい:

{ 
    ChartDashboard: "Usage" 
    Insights: 
    { 
     sumOfData: 10, 
     anotherSum: 15 
    } 
    } 

私は$オペレータは、いくつかのAPIキーのプロパティで取得できることを読みますが、MongoDBのは、これを作るために任意の演算子を持っています?

+1

利用の集約の例は以下の通りです。 [$ group](https://docs.mongodb.com/manual/reference/operator/aggregation/group/)オペレータ – felix

+0

umm yeah!を見てください。これは非常に役に立ちます –

答えて

1

集約フレームワークを使用できます。

db.collection.aggregate([ 
{ '$group': 
    { 
    _id:null, 
    'ChartDashboard':'Usage', 
    'sumOfData':{$sum:'$Insights.sumOfData'}, 
    'anotherSum':{$sum:'$Insights.sumOfData'} 
    } 
} 
]) 

とその結果は次のようになります。このため

{ 
    '_id' : null, 
    'ChartDashboard' : 'Usage', 
    'sumOfData' : 10, 
    'anotherSum' : 15 
} 
関連する問題