Tengo 2 colecciones: configuraciones y puntos. La colección de puntos tiene un campo de nombre que almacena la identificación para la colección de configuraciones.
¿Cómo se pueden combinar dos colaciones, dado que la colección tiene un Array en el que se encuentran los objetos en los que buscar?
configuraciones:
{ "find": true, "points": [{ "image": true, "brand": true, "_id": { "$oid": "61f0ad909535d94c98056e11" }, "name": "ABC" }, { "image": true, "brand": true, "_id": { "$oid": "61f0ade99535d94c98056e17" }, "name": "Odido" }] }puntos
{ "name": "61f0ad909535d94c98056e11", "userID": "61c49f94a02ff82b484cc6d0", enter code here "create_date": { "$date": "2022-01-27T02:53:52.473Z" } }Me gustaría obtener este resultado, bueno, o algo similar.
{ "name": "61f0ad909535d94c98056e11", "userID": "61c49f94a02ff82b484cc6d0", "config_name": { "image": true, "brand": true, "_id": { "$oid": "61f0ad909535d94c98056e11" }, "name": "ABC" }, "create_date": { "$date": "2022-01-27T02:53:52.473Z" } }estoy tratando de usar una consulta como esta
Points.aggregate([ { $lookup: { from: "configs", localField: "name", foreignField: "_id", as: "configs", }, }, ]);Gracias de antemano por tu ayuda :)
db.points.aggregate([ { $match: { "name": "61f0ad909535d94c98056e11" } }, { $set: { "name": { "$toObjectId": "$name" } } }, { $lookup: { from: "configs", localField: "name", foreignField: "points._id", as: "config_name" } }, { $set: { "config_name": { "$first": { "$filter": { "input": { "$first": "$config_name.points" }, "as": "item", "cond": { "$eq": [ "$name", "$$item._id" ] } } } } } } ])