MongoDB конвейер агрегации $ проект предыдущего этапа без подмассива

В моем конвейере агрегации есть такая структура подмассива:

  {
"_id": "london_10:2016-10-07 12",
"data": {
"voltage_a": 0.008888,
"voltage_b": 0.008888,
"voltage_c": 0.008888,
},
"Voltage (V)": 0.008888,
"datetime": "2016-10-07T11:25:46"},

На этапе $ project я прохожу все, что есть в подмассиве «данные», как оно существует в настоящее время:

  [
'$project' => [
'data' => '$data',
'Voltage (V)' => [
'$divide' => [
['$add' => ['$data.voltage_a', '$data.voltage_b', '$data.voltage_c']]
],
],
]
]

Как проецировать данные таким образом, чтобы они выводили Voltage_a, Voltage_B и Voltage_C на одном уровне с «Voltage (V)» и «Datetime», то есть с плоской структурой?

0

Решение

Для плоской структуры, где у вас есть выход с voltage_a, voltage_b а также voltage_c на том же уровне, что и "Voltage (V)" а также "datetime"запустите ваш конвейер следующим образом:

[
'$project' => [
'voltage_a' => '$data.voltage_a',
'voltage_b' => '$data.voltage_b',
'voltage_c' => '$data.voltage_c',
'Voltage (V)' => [
'$divide' => [
[ '$add' => ['$data.voltage_a', '$data.voltage_b', '$data.voltage_c'] ]
],
],
'datetime' => 1
]
]
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]