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

392
Vistas
MongoDB - Mongoose con NodeJS buscar y unirse a la colección

Necesito encontrar y unirme a otra colección para obtener los datos comerciales de la colección comercial y la descripción del perfil que se guarda en la colección de perfiles. Última versión de nodejs y mongoose.

 businesses = await Business.find({}, "business_id name industry") .limit(limit * 1) .skip((page - 1) * limit) .exec();

Ese es el código, que necesito más tarde también para la paginación.

Ahora encontré una solución con $Lookup en Mongoose. mi código parece

 Business.aggregate([{ $lookup: { from: "profiles", // collection name in db localField: "business_id", foreignField: "business_id", as: "profile" } }]).exec(function(err, profile) { console.log(profile[0]); });

El negocio y el perfil se guardan con business_id en un campo. Entonces no puedo trabajar con _id de Mongoose. Nunca antes trabajé con mangosta y dos colecciones.

El problema ahora es que el perfil[0] no está conectado al negocio correcto. Entonces, el perfil es otro a partir del hallazgo comercial anterior.

Necesito encontrar las últimas 10 empresas y unirme a otra colección y capturar también los detalles del perfil. Lo que hago mal aquí, ¿alguien tiene un ejemplo de este comportamiento?

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

0

Utilice https://mongoosejs.com/docs/populate.html

Como en su caso, no tiene ObjectId aquí, puede usar populate-virtuals

Hasta ahora, solo ha rellenado en función del campo _id. Sin embargo, a veces esa no es la elección correcta. En particular, las matrices que crecen sin límite son un antipatrón de MongoDB. Usando mongoose virtuals, puede definir relaciones más sofisticadas entre documentos.

 const BusinessSchema = new Schema({ name: String }); BusinessSchema.virtual('profile', { ref: 'Profile', // The model to use localField: 'business_id', // Find people where `localField` foreignField: 'business_id', // is equal to `foreignField` // If `justOne` is true, 'members' will be a single doc as opposed to // an array. `justOne` is false by default. justOne: false, options: { sort: { name: -1 }, limit: 5 } // Query options, see "bit.ly/mongoose-query-options" });
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