Segue o trecho do código que estou usando para tratar a busca quando existe o parâmetro "nomeAutor":
if (nomeAutor){
const autorAchado = await autor.findOne({nome: nomeAutor});
const idAutor = autorAchado._id;
console.log(idAutor);
busca.autor = idAutor;
}
Eu adicionei o console.log para checar qual conteúdo está indo para o método livro.find() na sequência do código a cima, e estou recebendo o id no seguinte formato: new ObjectId("655b7bccf74bce4659af5d44").
Eu não sei se deveria receber dessa forma (incluindo a parte "new ObjectId") ou só a string com o hexadecimal, mas imagino que esteja correto pois não está dando CastError.
Minha suposição é que o problema esteja na forma como eu construí o modelo do livroSchema, que está diferente da forma usada no curso. Como eu estou fazendo esse curso na sequência desse outro, eu continuei usando o mesmo projeto, mesmo tendo notado que havia algumas diferenças em relação ao do curso atual. Por esse motivo, o campo 'autor' do meu livroSchema foi criado dessa forma:
autor: autorSchema
É realmente esse o motivo de o meu código não estar funcionando?
Se sim, eu preciso mudar o meu livroSchema para refletir o do projeto usado no curso, ou existe uma forma dessa busca (livro por autor) funcionar mantendo o meu livroSchema como está?
Se não, alguma sugestão de onde pode estar o problema para eu verificar e compartilhar os trechos de código necessários para que possam me auxiliar?
Obs: eu testei a requisição com todos os autores que tenho com livros cadastrados, copiando e colando os nomes para garantir que não houve erro de digitação, e chequei no console os IDs retornados e estão batendo com os cadastrados no DB. Em todos os casos eu recebo uma array vazia como retorno. As demais buscas (por editora, número de páginas e título) estão funcionando perfeitamente.