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

Hvad er Mongoose-fejlen Cast to ObjectId mislykkedes for værdien XXX ved sti _id?

Mongoose's findById metoden kaster id parameter til typen af ​​modellens _id felt, så det korrekt kan forespørge efter det matchende dokument. Dette er et ObjectId men "foo" er ikke et gyldigt ObjectId, så castet mislykkes.

Dette sker ikke med 41224d776a326fb40f000001 fordi den streng er et gyldigt ObjectId.

En måde at løse dette på er at tilføje en check før din findById ring for at se om id er et gyldigt ObjectId eller ikke som det:

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


  1. Lagring af datastrøm fra POST-anmodning i GridFS, express, mongoDB, node.js

  2. Mongoose-opdatering uden tilbagekald

  3. DB med den bedste indsats/sekund ydeevne?

  4. sæt udløbsnøglen på et bestemt tidspunkt, når du bruger Spring caching med Redis