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

416
Vistas
MongoDB: agregación entre 2 documentos con unión usando un campo que es una matriz de cadenas

Mi esquema se ve así

colección de lotes:

 {"_id":{"$oid":"61e82ed943389ffc5d277055"}, "name":"Batch ready to process", "DocumentIDs":["61e82edb75d2841f2a8a023d"]}

colección de documentos:

 {"_id":{"$oid":"61e82edb75d2841f2a8a023d"}, "DocumentStatus":{"ActionId":"1","ActionType":"Type1","Status":"Status1"} }

Entonces, la colección de lotes tiene una matriz de ID de documentos. ¿Cómo puedo fusionar estas 2 colecciones? Estaba tratando de usar la búsqueda agregada, pero parece que no funcionará en este caso porque su esquema solo permite comparar campos simples y necesito verificar si la ID del documento existe en la matriz "DocumentIDs".

Como resultado, solo necesito una lista de elementos con solo 2 campos que existen en la colección de documentos: "ActionType" y "Status". Necesito una lista de este tipo para un ID de lote en particular, por lo que el ID de lote es un criterio de filtro.

Este es el esquema de la búsqueda de agregación

 /** * from: The target collection. * localField: The local join field. * foreignField: The target join field. * as: The name for the results. * pipeline: The pipeline to run on the joined collection. * let: Optional variables to use in the pipeline field stages. */ { from: 'string', localField: 'string', foreignField: 'string', as: 'string' }

-Jacek

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

0

posiblemente esto:

 db.getCollection('batches').aggregate([ {$match: {_id : ObjectId('61e82ed943389ffc5d277055')}}, {$unwind : {"path" : "$DocumentIDs"}}, {$project: { _id: 1, "documentId" : {$toObjectId: "$DocumentIDs"} } }, {$lookup: { from: 'documents', localField: "documentId", foreignField: "_id", as: "join_results" } }, {$unwind: {"path" : "$join_results"}}, {$project: { "_id" : 0, "actionType" : "$join_results.DocumentStatus.ActionId", "status" : "$join_results.DocumentStatus.Status", } } ])
over 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