MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Qu'est-ce que l'erreur Mongoose Cast to ObjectId a échoué pour la valeur XXX au chemin _id ?

findById de Mongoose la méthode transtype le id paramètre au type de _id du modèle afin qu'il puisse interroger correctement le document correspondant. Ceci est un ObjectId mais "foo" n'est pas un ObjectId valide donc le cast échoue.

Cela ne se produit pas avec 41224d776a326fb40f000001 car cette chaîne est un ObjectId valide.

Une façon de résoudre ce problème consiste à ajouter une vérification avant votre findById appeler pour voir si id est un ObjectId valide ou non :

if (id.match(/^[0-9a-fA-F]{24}$/)) {
  // Yes, it's a valid ObjectId, proceed with `findById` call.
}