sql >> Databáze >  >> NoSQL >> MongoDB

Co je chyba Mongoose Odeslání do ObjectId selhalo pro hodnotu XXX na cestě _id?

findById společnosti Mongoose metoda přetypuje id parametr na typ _id modelu pole, aby se mohl správně dotazovat na odpovídající doc. Toto je ObjectId, ale "foo" není platné ObjectId, takže přetypování se nezdaří.

To se nestane s 41224d776a326fb40f000001 protože tento řetězec je platné ObjectId.

Jedním ze způsobů, jak to vyřešit, je přidat šek před váš findById zavolejte, abyste zjistili, zda id je platné ObjectId nebo se mu to nelíbí:

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


  1. Upgrade HBase nad architekturou Event Sourcing a CQRS za 3 týdny

  2. Připojení MongoDB k Ruby pomocí certifikátů s vlastním podpisem pro SSL

  3. Schéma Mongoose:„unikátní“ není respektováno

  4. Je GridFS dostatečně rychlý a spolehlivý pro výrobu?