Je veux ajouter des collections de jointures en utilisant $lookup
Dans mongodb. J'essaye comme ci-dessous
{
$lookup:{
from:"User",
localField:"assignedId",
foreignField:"_id",
as:"dataa"}
}
Maintenant, j'ai deux collections
ser contient objectid
d'utilisateurs comme "_id" : ObjectId("56ab6663d69d2d1100c074db"),
et Tâches où il contient assignedId
comme string
"assignedId":"56ab6663d69d2d1100c074db"
Maintenant, lors de l'application de la recherche $ dans les deux collections, cela ne fonctionne pas car les ID ne correspondent pas.
Pour cela, je l'ai recherché sur Google et j'ai trouvé une solution qui
{ $project: { assignedId: {$toObjectId: "$assignedId"} }}
mais cette solution ne fonctionne pas pour moi, cela génère une erreur:
assert: command failed: { "ok" : 0, "errmsg" : "invalid operator '$toObjectId'", "code" : 15999 } : aggregate failed
Veuillez m'aider à résoudre ce problème.
Merci
Ce n'est pas possible dans le pipeline d'agrégation. Il n'existe aucune méthode pour convertir le type. Pouvez-vous changer le type d '"attributId" dans la collection de tâches en ObjectId? Sinon, vous devez le faire dans le code, convertir l'ObjectId en une chaîne et l'utiliser dans une autre requête.