Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

147
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda