tengo esta consulta:
[ { '$match': { 'imageUrls': { '$type': 'array', '$ne': [] } } }, { '$project': { 'imageUrls': 1, 'time': 1 } }, { '$sort': { 'time': 1 } }, { '$skip': 0 }, { '$limit': 10 } ]Este es el esquema:
{ "_id": { "$oid": "5ffb0c14dd482daa039ee906" }, "imageUrls": ["image url1", "image url2"], "time": 342432432432 } El resultado es una lista de documentos, cada uno de los cuales contiene el campo de matriz imageUrls . Quiero tener todos los valores en los campos imageUrls en un solo campo de matriz.
$sort por tiempo en orden descendente$project para mostrar solo un campo imageUrls$unwind deconstruye la matriz imageUrls$facet para separar los documentos de resultado, total y paginación$skip documentos$limit de número de documentos$group por null y reconstruir la matriz imageUrls { $sort: { time: -1 } }, { $project: { imageUrls: 1 } }, { $unwind: "$imageUrls" }, { $facet: { result: [ { $skip: 0 }, { $limit: 10 }, { $group: { _id: null, imageUrls: { $push: "$imageUrls" } } } ], count: [ { $count: "count" } ] } }