Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Sugestão: Busca por sobrenome de autores.

Ao verificar como estava se comportando a busca por autor, me fiz a seguinte pergunta, como pesquisar os livros de autores que contenham um determinado sobrenome. Cheguei a conclusão que deve mudar a busca do autor para find() e deve ser passado para a busca um array com os id dos autores encontrados (obs: demorei para descobrir que é só passar um array ao invés de algo como busca.autor.$in).

Resultado da alteração:


  if(nomeAutor) {
    
    const listaAutores = await autores.find({ nome: {$regex: nomeAutor, $options: "i" } });

    if (listaAutores !== null) {
      busca.autor = listaAutores.map( (obj) => obj._id.toString());      
    } else {
      busca = null;
    }
  }

O resultado esperado quando passado na URL http://localhost:3000/livros/busca?titulo=end&nomeAutor=Barbosa, são todos os livros que contenham no titulo a palavra "end" e autor que tenha no nome a palavra "Barbosa".

1 resposta
solução!

Olá Rafael, tudo joia?

Fico feliz que tenha analisado, e modificado o método do controlador para uma funcionalidade que você havia pensado! Essa é uma ótima maneira de fixar e expandir os seus conhecimentos. Agradeço por compartilhar essa ideia aqui no fórum e espero que continue assim!

Se caso durante os seus estudos você tenha dúvidas ou problemas, você pode contar com a comunidade do fórum!

Grande abraço e bons estudos!