Tengo ganas de ir de este documento:
{ _id: 1, property: "a", children: [ { _id: 2, property: "b" }, { _id: 3, property: "c" } ] }a esto:
{ _id: 1, property: "a" } { _id: 2, property: "b" } { _id: 3, property: "c" } usando una función agregada de MongoDB. No he encontrado nada adecuado. $unwind es lo que más se acerca, pero no conduce al resultado deseado.
Puedes hacerlo con el marco de agregación:
$concatArrays : para agregar una nueva propiedad del objeto principal a la matriz secundaria$project : para devolver solo una matriz de niños$unwind : para desenredar la matriz de niños en varios documentos$replaceRoot - para reemplazar a la raíz del documento a la propiedad de los niños db.collection.aggregate([ { "$project": { "_id": 0, "children": { "$concatArrays": [ "$children", [ { "_id": "$_id", "property": "$property" } ] ] } } }, { "$unwind": "$children" }, { "$replaceRoot": { "newRoot": "$children" } } ])