Получить объект на корневом уровне mongodb - PullRequest
1 голос
/ 14 апреля 2019

документ:

{"_id":"5cb0dfe234a8a30c9c0af127",
"sensors":
[{"value0":0.153,
"value1":-0.306,
"value2":9.807}],
"timestamp":1555095522489,"__v":0}

Я хочу получить 4 поля (отметка времени и значение 0..2) без какого-либо массива / объекта.Размотка работы только против массива, но не объектовЧто мне делать?

желаемый вывод:

{timestamp":1555095522489,
value0":0.153,
value1":-0.306,
value2":9.807}

1 Ответ

3 голосов
/ 14 апреля 2019

Использование $unwind и $replaceRoot операторы агрегирования

db.collection.aggregate([   
  { "$unwind": "$sensors" },
  { "$replaceRoot": { "newRoot": { "$mergeObjects": ["$sensors", { "timestamp": "$timestamp" }] }}} 
])
...