MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

O que é o erro do Mongoose A conversão para ObjectId falhou para o valor XXX no caminho _id?


findById do Mongoose O método converte o id parâmetro para o tipo de _id do modelo campo para que ele possa consultar corretamente o documento correspondente. Este é um ObjectId, mas "foo" não é um ObjectId válido, portanto, a conversão falha.

Isso não acontece com 41224d776a326fb40f000001 porque essa string é um ObjectId válido.

Uma maneira de resolver isso é adicionar uma verificação antes do seu findById ligue para ver se id é um ObjectId válido ou não é assim:
if (id.match(/^[0-9a-fA-F]{24}$/)) {
  // Yes, it's a valid ObjectId, proceed with `findById` call.
}