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

131
Vistas
Excluya ciertos atributos del objeto usando la población de mongodb usando el agregado

Quiero excluir, por ejemplo, el correo electrónico y la dirección usando la función populate () de mongodb, solo obtenga el nombre:

Ejemplo:

 const results = await Seller.aggregate(aggregatePipeline).exec(); const sellers = await Seller.populate(results, { path: "user" });

Al completar el usuario en lugar de tener:

 ... user: { email: "hgjh@gmail.com", address:{}, name: "name" }

Solo quiero tener (excluir ciertos datos de la ruta):

 ... user: { name: "name" }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puedes hacer cualquiera,

 const sellers = await Seller.populate(results, { path: "user", select: '- email -address' });

o

 const sellers = await Seller.populate(results, { path: "user", select: 'name' });
about 4 years ago · Juan Pablo Isaza Denunciar

0

Según entiendo, la documentación de mongoose https://mongoosejs.com/docs/populate.html , se usa para resolver una relación con otra colección.

MongoDB tiene el operador de agregación $lookup similar a unirse en versiones >= 3.2. Mongoose tiene una alternativa más poderosa llamada populate(), que le permite hacer referencia a documentos en otras colecciones.

En su caso, no necesita resolver un campo con otra colección. Ya tienes los datos finales a los que apuntas. Podría usar $project al final de la agregación de su tubería para mantener solo el campo de nombre, como:

{ $project: { name:1 } }

Déjame saber si te ayudé.

Editar :

Leí demasiado rápido, si tiene estos datos después de completar y no después de agregar, puede select su campo final, como se dice aquí https://stackoverflow.com/a/72481338/16205278

 user: { email: "hgjh@gmail.com", address:{}, name: "name" }
about 4 years ago · Juan Pablo Isaza 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