Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

402
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda