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

352
Visualizações
Búsqueda de agregación de MongoDB, empuje la salida de ambas colecciones en subobjetos

https://mongoplayground.net/p/xQp-y1iXUtZ

Hay 2 colecciones:

  1. perfil
  2. sustitutos

Después de una búsqueda, la colección externa se devuelve como una matriz. Dado que solo puede haber un elemento en esa matriz (un sub solo puede tener un perfil), tomamos el primero.

Ahora, también me gustaría "empujar" la colección "subs" a un objeto. Hay muchos campos en "subs".

Esto es lo que tengo:

 [ { "PROFILE0": { "_id": "1", "name": "gk" }, "_id": "1", "f1": "f1", "f2": "f1", "f3": "f1", "f4": "f1", "username": "gk" }, { "PROFILE0": { "_id": "1", "name": "gk" }, "_id": "2", "f1": "f1", "f2": "f3", "f3": "f4", "f4": "f5", "username": "gk" } ]

Esto es lo que estoy buscando:

 [ { "PROFILE0": { "_id": "1", "name": "gk" }, "SUBS": { "_id": "1", "f1": "f1", "f2": "f1", "f3": "f1", "f4": "f1", "username": "gk" } }, { "PROFILE0": { "_id": "1", "name": "gk" }, "SUBS": { "_id": "2", "f1": "f1", "f2": "f3", "f3": "f4", "f4": "f5", "username": "gk" } } ]

Esencialmente, el contenido de la colección "local" también como un objeto.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Agrega proyección antes de la búsqueda,

  • $project para crear un campo SUBS y establecer $$ROOT como el valor que es el documento raíz
  • $lookup para unirse a la colección de perfiles, pase SUBS.username de usuario como localField y establezca PROFILE0 as valor, y no necesitamos la etapa $unset
  • $set lo mismo que hiciste
 db.subs.aggregate([ { $project: { _id: 0, SUBS: "$$ROOT" } }, { $lookup: { from: "profile", localField: "SUBS.username", foreignField: "name", as: "PROFILE0" } }, { $set: { "PROFILE0": { $arrayElemAt: ["$PROFILE0", 0] } } } ])

Patio de recreo

over 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