sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Puedo devolver fácilmente todos los campos de un subdocumento como campos en el documento de nivel superior utilizando el marco de agregación?

Puede usar $replaceRoot operador de agregación desde 3.4:

db.getCollection('sample').aggregate([
    {
        $replaceRoot: {newRoot: "$field1"}
    }
])

Proporciona la salida esperada:

{
    "subfield" : {},
    "subfield2" : [],
    "subfield3" : 44,
    "subfield5" : "xyz"
}