MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Qual è l'errore Mongoose Trasmetti a ObjectId non riuscito per il valore XXX nel percorso _id?

findById di Mongoose il metodo esegue il cast di id parametro al tipo di _id del modello campo in modo che possa eseguire correttamente la query per il documento corrispondente. Questo è un ObjectId ma "foo" non è un ObjectId valido, quindi il cast non riesce.

Questo non accade con 41224d776a326fb40f000001 perché quella stringa è un ObjectId valido.

Un modo per risolvere questo problema è aggiungere un controllo prima del tuo findById chiama per vedere se id è un ObjectId valido o meno:

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