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

127
Visualizações
¿Cómo llenar la mangosta con obejectId que se define como Número?

Estoy tratando de completar mis solicitudes de usuario.profileId pero solo devuelve valores nulos.

Tengo los siguientes esquemas:

Primer esquema:

 const profileSchema = new mongoose.Schema({ _id: { type: Number }, //<- _id is defined as a number which represents mobile number (easier for me to handle) first: { type: String }, second: { type: String }, }); module.exports = mongoose.model('Profile', profileSchema, 'profiles');

Segundo esquema:

 const userSchema = new mongoose.Schema({ firstName: { type: String }, lastName: { type: String }, requests: [ { profileId: { type: mongoose.Schema.Types.ObjectId, ref: 'Profile', }, requestTime: { type: Date, default: Date.now }, }, ], }); module.exports = mongoose.model('User', userSchema, 'users');

Aquí está mi código:

 const user = await User.findById(req.user).populate('requests.profileId'); console.log(user.requests);

Aquí está la salida:

 [ { _id: 6201633869648e2b74c00a10, profileId: null, requestTime: 2022-02-07T18:21:44.722Z }, { _id: 6201633b69648e2b74c00a11, profileId: null, requestTime: 2022-02-07T18:21:47.238Z }, { _id: 620238f9d2b5dd3dee6c41a2, profileId: null, requestTime: 2022-02-08T09:33:45.176Z }, { _id: 620239253220343dfd7cfdd9, profileId: null, requestTime: 2022-02-08T09:34:29.780Z } ]

Aquí está la salida sin poblar:

 [ { _id: 6201633869648e2b74c00a10, profileId: 393732353235303134343330, //<- typeof profileId is obeject requestTime: 2022-02-07T18:21:44.722Z }, { _id: 6201633b69648e2b74c00a11, profileId: 393732353435353333313131, requestTime: 2022-02-07T18:21:47.238Z }, { _id: 620238f9d2b5dd3dee6c41a2, profileId: 393732353435353333313131, requestTime: 2022-02-08T09:33:45.176Z }, { _id: 620239253220343dfd7cfdd9, profileId: 393732353435353333313131, requestTime: 2022-02-08T09:34:29.780Z } ]

Actualmente Profile.findById(mobileNumber) funciona bien.

¿Alguna idea de lo que salió mal?

Apreciaré mucho su ayuda.

Gracias por adelantado :)

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Prueba esto podría funcionar, avísame si no funciona

 const user = await User.findById(req.user).populate('Profile'); console.log(user.requests);
about 4 years ago · Juan Pablo Isaza Relatório

0

prueba esto:

 User.findById(req.user).populate({ path: 'requests', populate: { path: 'profileId', model: 'Profile' } })
about 4 years ago · Juan Pablo Isaza Relatório

0

¡Para futuros lectores que tengan el mismo problema!

He encontrado una solución para este problema.

Tuve que cambiar el tipo de ID de perfil a Número en mi esquema de usuario:

 const userSchema = new mongoose.Schema({ firstName: { type: String }, lastName: { type: String }, requests: [ { profileId: { type: Number // and NOT use type: mongoose.Schema.Types.ObjectId, ref: 'Profile', }, requestTime: { type: Date, default: Date.now }, }, ], }); module.exports = mongoose.model('User', userSchema, 'users');

¡Ahora funciona!

about 4 years ago · Juan Pablo Isaza 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