Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

275
Views
Cómo llenar múltiples modelos con mongodb usando "población"

Estoy tratando de mostrar todos los datos con la declaración "poblar". Pero solo obtengo un "poblar" pero cuando pongo muchos no funciona. lo que quiero hacer es traerme los datos del modelo "Usuario", "Cliente" también.

este es mi codigo

Mi modelo:

 import { model, Schema } from 'mongoose'; const RoomSchema = new Schema({ Users: [ { agentId: { type: Schema.Types.ObjectId, ref: "User", required: false, }, customerId: { type: Schema.Types.ObjectId, ref: "Customer", required: false, }, typeId: Number, // 1 - agent, 2 - client }, ], Messages: [ { agentId: { type: Schema.Types.ObjectId, ref: "User", required: false, }, customerId: { type: Schema.Types.ObjectId, ref: "Customer", required: false, }, message: { type: String, required: true, }, date: Date, sender: Number, }, ], FinishAt: Date, FinishBy: String, typeFinishBy: Number, // 1 - agent, 2 - client }, { timestamps: true, versionKey: false }); export default model('Room', RoomSchema);

esta es la frase que estoy usando

 import Room from "../models/Room.js"; async function getOnlyRoom(id) { const foundRoom = await Room.findById(id) .populate('Users.agentId') .populate('Users.customerId') .populate('Messages.agentId') .populate('Messages.customerId') .execPopulate(); return foundRoom }

Imagen de Json Cartero

solo funciona con uno

 foundRoom.populate('Users.customerId')

Funciona con solo poblar

esta es la imagen de error de error

Muchas gracias por su ayuda

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Encontré la solución a mi problema. Estaba investigando la solución en el sitio web de mongoose y lo hice con una sola población.

 const populateRoom = await foundRoom .populate([ { path: 'Users.agentId', select: 'name' }, { path: 'Users.customerId', select: 'name' }, { path: 'Messages.agentId', select: 'name' }, { path: 'Messages.customerId', select: 'name' } ]) return populateRoom;
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!