Quiero agregar colecciones de unión usando $lookup en mongodb. Estoy tratando de la siguiente manera
{ $lookup:{ from:"User", localField:"assignedId", foreignField:"_id", as:"dataa"} }Ahora tengo dos colecciones.
El usuario contiene objectid de usuarios como "_id" : ObjectId("56ab6663d69d2d1100c074db"),
y Tareas donde contiene el ID assignedId como una string "assignedId":"56ab6663d69d2d1100c074db"
Ahora, cuando se aplica $búsqueda en ambas colecciones, no funciona porque las identificaciones no coinciden.
Para eso lo busqué en Google y encontré una solución que incluir
{ $project: { assignedId: {$toObjectId: "$assignedId"} }}
pero esta solución no funciona para mí, arroja un error:
assert: command failed: { "ok" : 0, "errmsg" : "invalid operator '$toObjectId'", "code" : 15999 } : aggregate failedPor favor, ayúdame, ¿cómo puedo resolver este problema?
Gracias
No es posible en la tubería de agregación. No hay ningún método para convertir el tipo. ¿Puede cambiar el tipo de "identificador asignado" en la colección de Tareas a ObjectId? De lo contrario, debe hacerlo en el código, convertir el ObjectId en una cadena y usarlo en otra consulta.