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

72
Vistas
Mongo se fusiona en una matriz

tengo lo siguiente:

 {_id: blah, anotherId: "externalId", description: "foo"}, {_id: blah, anotherId: "externalId", description: "bar"}, ...

Deseo:

 {_id: blah, anotherId: "externalId", descriptions: ["foo", "bar"]}

Sé que simplemente puedo escribir esto, pero es muy lento ya que tengo millones de registros.

 db.collectionOfAnotherId.find().forEach(function(r){ var x = {anotherId: r.id, descriptions: []}; db.myCollection.find({anotherId: x.anotherId}).forEach(function(d){ x.descriptions.push(d.description); }); db.newCollection.save(x); })

¿Algunas ideas?

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

0

Podría usar el marco de agregación para esto. Por ejemplo, considere usar el operador de $lookup para hacer una unión izquierda a myCollection y escribir los resultados de la siguiente canalización de $group en la nueva colección usando $push para crear la matriz de descripciones como:

 db.collectionOfAnotherId.aggregate([ { "$lookup": { "from": "myCollection", "localField": "id", "foreignField": "anotherId", "as": "d" } }, { "$unwind": "$d" }, { "$group": { "_id": "$_id", "anotherId": { "$first": "$id" }, "descriptions": { "$push": "$d.description" } } }, { "$out": "newCollection" } ])
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