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

131
Visualizações
Objeto de proyecto de Nested Array MongoDB
[ { "_id": "grandParentId", "types": [ { "_id": "parentId", "files": [ { "url": "1.example.com", "_id": "1childId" }, { "url": "2.example.com", "_id": "2childId" } ] } ] } ]

cond: { _id: 2childId }

Rendimiento esperado:

 { "url": "2.example.com", "_id": "2childId" }

pregunta 2: ¿es este un buen enfoque o debería usar bucles para obtener el resultado deseado?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

usando $unwind y $project agregados

pruébalo en mongoPlayground

 db.collection.aggregate([ { "$unwind": "$types" }, { "$unwind": "$types.files" }, { "$match": { "types.files._id": "2childId" } }, { "$project": { "url": "$types.files.url", "_id": "$types.files._id" } } ])
about 4 years ago · Juan Pablo Isaza Relatório

0

Estoy seguro de que hay otras formas, pero puede usar el marco de agregación de mongo:

 db.collection.aggregate([ { $match: { "types.files._id": "2childId" } }, { $unwind: "$types" }, { $unwind: "$types.files" }, { $replaceRoot: { newRoot: "$types.files" } }, { $match: { _id: "2childId" } } ])

El primer $match es solo para filtrar documentos que coincidan con su condición. $unwind se usan dos veces para deconstruir las diferentes matrices. $replaceRoot reemplaza el documento de entrada con el documento especificado (en este caso, subdocumento, files ) y el $match final filtra las matrices de files que deconstruimos anteriormente, en función de su condición. El primer $match es solo por razones de rendimiento, puede eliminarlo si lo desea.

Puedes ver cómo funcionan los escenarios en https://mongoplayground.net/p/hoz24xP_BNV

Consulte la documentación del marco de agregación de mongo si desea obtener más información al respecto ( https://docs.mongodb.com/manual/aggregation/ )

about 4 years ago · Juan Pablo Isaza 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