Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

199
Views
¿Cómo puedo usar modificar y usar '$ y' en una consulta de búsqueda cuando algunos elementos son nulos?

Necesito ayuda para ajustar el código para esto:

 const posts = await PostMessage.find({ $or: [ { title }, { tags: { $in: tags.split(',') } } ]});

Por el momento, puede filtrar las publicaciones utilizando un formulario de búsqueda que tiene título y publicaciones. Puede dejar uno vacío cuando busque. Funciona bien excepto cuando usas ambos. Por ejemplo, buscar "senderismo" y etiquetar "Europa" mostraría publicaciones tanto para títulos de senderismo como para etiquetas de Europa (cuando quisiera que la búsqueda se redujera para mostrar solo publicaciones con el título senderismo y etiquetadas como Europa). Sé que puedo usar $and en lugar de $or pero eso solo devuelve las publicaciones si el usuario ingresa tanto el título como las etiquetas cuando quiero darle al usuario la opción de dejar uno en blanco. ¿Puede alguien ayudarme a escribir el código para eso?

Por lo que he visto, me preguntaba si podría hacer algo como esto:

O: { (Y: título no nulo, etiquetas no nulas) (O título nulo, etiquetas no nulas) (O título no nulo, etiquetas nulas))

¿Es posible hacer esto? No puedo encontrar un ejemplo similar. ¡Gracias por la ayuda!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Suponiendo que ninguno de los parámetros ( title , tags ) no estará definido, puede diseñar la consulta antes de ejecutarla

 const query = { title: title, tags: { $in: tags.split(",") }, }; const params = { title, tags }; Object.keys(params).forEach((param) => { if (!params[param]) { delete query[param] // delete from query if value is not present } }); const posts = await PostMessage.find(query);

De esta manera usará solo los parámetros que tienen valores.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!