Получить объект на корневом уровне mongodb

документ:

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

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

желаемый результат:

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

person Dmitry Sokolov    schedule 14.04.2019    source источник
comment
Что должно быть на выходе?   -  person Ashh    schedule 14.04.2019
comment
все документы из коллекции в формате: timestamp, value0, value1, value2 {1555095522489, 0,153, -0,306, 9,807}   -  person Dmitry Sokolov    schedule 14.04.2019
comment
Пожалуйста, покажите вывод в формате JSON, отредактировав свой вопрос   -  person Ashh    schedule 14.04.2019
comment
Возможный дубликат stackoverflow.com/questions/11189243 /   -  person krishna Prasad    schedule 14.04.2019


Ответы (1)


Используйте $unwind и $replaceRoot операторы агрегации

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