MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Was ist Mongoose error Cast to ObjectId failed for value XXX at path _id?

Mongooses findById Methode wandelt die id um Parameter auf den Typ der _id des Modells Feld, damit es ordnungsgemäß nach dem übereinstimmenden Dokument suchen kann. Dies ist eine ObjectId, aber "foo" ist keine gültige ObjectId, daher schlägt die Umwandlung fehl.

Dies passiert nicht mit 41224d776a326fb40f000001 da diese Zeichenfolge eine gültige ObjectId ist.

Eine Möglichkeit, dies zu beheben, besteht darin, vor Ihrer findById ein Häkchen hinzuzufügen aufrufen, um zu sehen, ob id ist eine gültige ObjectId oder nicht so:

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