Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

150
Vistas
Mongo Project haciendo referencia a un diccionario externo

Tengo una colección en MongoDB:

 [ { "uid": "a1" }, { "uid": "a2" } ]

y un diccionario en mi código JS

 let dict = { "a1": "ref1", "a1": "ref2" };

Quiero hacer un agregado que de alguna manera se una a los dos.

 let k = ; this.model.aggregate([ { $match: { uid: { $in: Object.keys(dict) } } }, { $project: { ref: // here is where I want to add the equivalent reference } } ])

El resultado esperado sería algo como esto:

 [{uid: "a1", ref: "ref1"}, {uid: "a2", ref: "ref2}]

¿Hay alguna manera de obtener la referencia del dict en $project ?

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

No sé si hay una manera más fácil de hacerlo, pero así es como lo logré:

 db.collection.aggregate([ { $match: { uid: { $in: [ "a1", "a2" ] } } }, { "$project": { "array": { "$objectToArray": { "a1": "ref1", "a2": "ref2" } }, "uid": 1, } }, { "$project": { "ref": { "$filter": { "input": "$array", "as": "elem", "cond": { "$eq": [ "$$elem.k", "$uid" ] } } }, uid: 1, }, }, { "$project": { ref: { "$arrayElemAt": [ "$ref.v", 0 ] }, uid: 1, } } ])

Véalo funcionando aquí . Espero que capte la idea y la convierta en la versión equivalente de nodejs.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda