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

216
Views
duplicados en matriz con condición de valor

Parque infantil Monog

Tengo el siguiente documento con una matriz (nombres gists ). Ejemplo de un documento:

 { "_id": ObjectId("60a2c0621e5f043b735e36ef"), "car_id": 78, "terminal": "JFK", "gists": [ "A", "M", "C", "D", "Q", "J", "F" ] },

Mi objetivo es consultar todos los documentos que tienen una "A" duplicada y obtener su car_id .

Si bien puedo encontrar duplicados, no pude obtener los resultados de "A" en gists .

 db.collection.aggregate([ { "$project": { "gists": 1 } }, { "$unwind": "$gists" }, { "$group": { "_id": { "_id": "$_id", "cid": "$gists" }, "count": { "$sum": 1 } } }, { "$match": { "$and": [ { "count": { "$gt": 1 } }, { "gists": "A" **//<---- this is where I get it off. Gist must contain A in the array** } ] } }, { "$group": { "_id": "$_id._id", "gists": { "$addToSet": "$_id.cid" } } } ])
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Puede probar el operador de expresión $expr con operadores de agregación,

  • $filter para iterar el ciclo de la matriz gists y verificar el valor "A"
  • $size para obtener el total de elementos del resultado filtrado anterior
  • $gt para comprobar que el tamaño anterior es mayor que 1
  • $group por nulo y construir la matriz de car_id
 db.collection.aggregate([ { $match: { $expr: { $gt: [ { $size: { $filter: { input: "$gists", cond: { $eq: ["$$this", "A"] } } } }, 1 ] } } }, { $group: { _id: null, car_id: { $push: "$car_id" } } } ])

Patio de recreo

Resultado:

 [ { "_id": null, "car_id": [79, 80] } ]
over 4 years ago · Santiago Trujillo 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!