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

200
Views
Encuentre documentos de mongodb basados en una matriz de objetos que contiene dos campos

Ejemplo: Mongo db collection:

 [ { "user_id": 1, "lead_id": 901, ... ... }, { "user_id": 2, "lead_id": 902, ... ... }, { "user_id": 2, "lead_id": 903, ... ... }, { "user_id": 3, "lead_id": 999, ... ... }, ]

Tengo una serie de objetos:

 const reqArr = [ { "user_id": 1, "lead_id": 901, }, { "user_id": 2, "lead_id": 999, } ]

Quiero consultar la base de datos en función de user_id y lead_id presentes en cada objeto de la matriz reqArr . algo como esto o con tubería agregada

 Model.find(reqArr)

Mi salida deseada sería algo como esto:

 [{ "user_id": 1, "lead_id": 901, ... ... }]

Solo sé cómo consultar en función de la matriz de un campo como Model.find({_id: {"$in": [array of ids ]}}) pero no con más de un campo en una matriz de objetos. ¿Alguna idea o solución para lograr algo como el resultado anterior o la negación del resultado anterior? Solo necesito qué objetos en reqArr están presentes en la colección db o cuáles no. Gracias.

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

0

La forma más sencilla de hacer lo anterior sería esta:

 const results = await Promise.all(reqArr.map(req => { const { user_id, lead_id } = req; return Model.findOne({ user_id, lead_id }); }));

Asignamos sobre cada elemento en reqArr . Para cada elemento ( req ), lo desestructuramos en dos variables user_id y lead_id .

Luego buscamos un solo documento (supongo que solo hay un documento para cada par user_id y lead_id , de lo contrario, será necesario ajustarlo ligeramente).

Luego devolvemos la promesa findOne , lo que da como resultado una serie de promesas que pasamos a Promise.all para esperarlas todas de forma asíncrona.

Esto debería generar una matriz plana de resultados que coincidan con los pares lead_iq / user_id en reqArr .

Si algunos de estos combos no están presentes en la base de datos, esos elementos de la matriz no estarán undefined y podrá manejarlos como lo necesite.

about 4 years ago · Juan Pablo Isaza Report

0

simple $or

 db.collection.aggregate([ { "$match": { "$or": [ { "user_id": 1, "lead_id": 901 }, { "user_id": 2, "lead_id": 902 } ] } } ])

parque infantil mongo


nodo

 const reqArr = [ { "user_id": 1, "lead_id": 901, }, { "user_id": 2, "lead_id": 999, } ] Model.find({ "$or": reqArr})
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!