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

283
Vistas
MongoDB elimina duplicados de una matriz anidada

Tengo una colección de users con la siguiente estructura:

 [ { name: "xxx", labels: [ { category: "Language", values: ["English", "Spanish"], }, { category: "Hobby", values: ["Read", "Cook", "Read"], }, ] }, { name: "yyy", labels: [ { category: "Language", values: ["English", "English"], }, { category: "Hobby", values: ["Read", "Play", "Play"], }, ] }, ]

Quiero eliminar todos los duplicados de la matriz de values , por lo que el resultado sería:

 [ { name: "xxx", labels: [ { category: "Language", values: ["English", "Spanish"], }, { category: "Hobby", values: ["Read", "Cook"], }, ] }, { name: "yyy", labels: [ { category: "Language", values: ["English"], }, { category: "Hobby", values: ["Read", "Play"], }, ] }, ]

Traté de usar setUnion y setIntersection , pero no sabía cuál es el motivo correcto para usarlos con una matriz anidada.

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

0

Para Mongo versión 4.2+, puede usar actualizaciones de canalización para esto, así:

 db.collection.updateMany( {}, [ { "$set": { labels: { $map: { input: "$labels", in: { $mergeObjects: [ "$$this", { values: { $setUnion: "$$this.values" } } ] } } } } } ])

Parque infantil Mongo

Para versiones anteriores de Mongo, deberá leer cada documento en la memoria y hacerlo en código, luego actualizar cada documento por separado.

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