0
私はMongoDBの比較的初心者です。数日後、私はこの問題に苦労しました。ネストされたドキュメントをグループ化する
私は多くの仮説を立てて、類似のニーズに関するすべての可能なドキュメント&の質問を読みましたが、まだ解決策が見つかりませんでした。
私は、次のレコード構造ました:私は取得したい何
{ _id: ObjectId("1234"),
locationName: "fakeaccount",
timeZone: "Europe/Rome",
metricValues: [
{
metric: "QUERIES_DIRECT",
totalValue: {
metricOption: "AGGREGATED_TOTAL",
timeDimension: {
timeRange: {
startTime: "2016-01-01T00:00:00Z",
endTime: "2016-01-03T00:00:00Z"
}
},
value: "0"
},
dimensionalValues: [
{
metricOption: "AGGREGATED_DAILY",
timeDimension: {
timeRange: {
startTime: "2016-01-01T23:00:00Z"
}
},
value: "0"
},
{
metricOption: "AGGREGATED_DAILY",
timeDimension: {
timeRange: {
startTime: "2016-01-02T23:00:00Z"
}
},
value: "1"
}
]
},
{
metric: "QUERIES_INDIRECT",
totalValue: {
metricOption: "AGGREGATED_TOTAL",
timeDimension: {
timeRange: {
startTime: "2016-01-01T00:00:00Z",
endTime: "2016-01-03T00:00:00Z"
}
},
value: "0"
},
dimensionalValues: [
{
metricOption: "AGGREGATED_DAILY",
timeDimension: {
timeRange: {
startTime: "2016-01-01T23:00:00Z"
}
},
value: "2"
},
{
metricOption: "AGGREGATED_DAILY",
timeDimension: {
timeRange: {
startTime: "2016-01-02T23:00:00Z"
}
},
value: "1"
}
]
}
}
] }
はフィールドmetricValues.dimensionalValues.value
がmetricValues.metric
で、その後metricValues.dimensionalValues.timeDimension.timeRange.startTime
によってグループ化され、出力ドキュメントです。
期待JSON出力:
[{
"startTime": "2016-01-01T00:00:00Z",
"metrics": {
"QUERIES_DIRECT": {
"value": 0
},
"QUERIES_INDIRECT": {
"value": 1
}
}
},
{
"startTime": "2016-01-02T00:00:00Z",
"metrics": {
"QUERIES_DIRECT": {
"value": 2
},
"QUERIES_INDIRECT": {
"value": 1
}
}
}]