problema al recuperar y populate un documento de la colección alumno con node en mlab
Publicado por Juan Carlos (1 intervención) el 02/12/2018 20:16:52
gracias lo primero de todo, es mi primer post
Tengo un problema al recuperar y populate un documento de la colección alumno con node en mlab
Tengo dos Schemas
Schema Colección alumnos
const mongoose = require('mongoose');
Const ObjectId = mongoose.Schema.Types.ObjectId;
Const Schema = mongoose.Schema;
const alumnoSchema = new Schema({
idContacto; { type: ObjectId, ref: 'Datos' },
estado: { type: String, required: false,default: 'Activo'}
// etc…
});
module.exports = mongoose.model('Alumnos', alumnosSchema);
2) Schema colección contactos
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
const datosSchema = new Schema({
referencia: { type: String, required: false },
nombre: { type: String, required: true},
apellidos: { type: String, required: false }
});
module.exports = mongoose.model('Contactos', contactosSchema);
cuando guardo el documento alumno en mlab me lo guarda con estos datos, donde en lugar de id me añade el objeto $oid al _id
{
"_id": {
"$oid": "5c03ae062bb7022f3438e701"
},
"idContacto": {
"$oid": "5c03ae062bb7022f3438e700"
},
"estado": "Activo",
"__v": 0
}
Y para recuperar el docomento lo hago con
const express = require('express');
const app = express();
const Alumnos = require('../models/alumnos');
const Datos = require('../models/datos');
app.get('/alumnos', (req, res, next) => {
Alumnos.find({})
.populate('Contactos')
.exec(
(err, alumnos) => {
if (err) {
return res.status(500).json({
ok: false,
mensaje: 'Error cargando alumnos',
errors: err
});
}
res.status(200).json({
ok: true,
alumnos: alumnos
});
});
});
Y como resultado me da:
{
"ok": true,
"alumnos": [
{
"idContacto": "5c03ae062bb7022f3438e700", // <--- aqui deberia de mostrarse un objeto del documento contacto
"__v": 0,
"estado": "Activo"
}
]
}
Es decir, solo me muestra el id de idContato, no me muestra el objeto completo del contacto.
¿Qué puede estar mal?
Gracias por adelantado
Juan Carlos
Tengo un problema al recuperar y populate un documento de la colección alumno con node en mlab
Tengo dos Schemas
Schema Colección alumnos
const mongoose = require('mongoose');
Const ObjectId = mongoose.Schema.Types.ObjectId;
Const Schema = mongoose.Schema;
const alumnoSchema = new Schema({
idContacto; { type: ObjectId, ref: 'Datos' },
estado: { type: String, required: false,default: 'Activo'}
// etc…
});
module.exports = mongoose.model('Alumnos', alumnosSchema);
2) Schema colección contactos
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
const datosSchema = new Schema({
referencia: { type: String, required: false },
nombre: { type: String, required: true},
apellidos: { type: String, required: false }
});
module.exports = mongoose.model('Contactos', contactosSchema);
cuando guardo el documento alumno en mlab me lo guarda con estos datos, donde en lugar de id me añade el objeto $oid al _id
{
"_id": {
"$oid": "5c03ae062bb7022f3438e701"
},
"idContacto": {
"$oid": "5c03ae062bb7022f3438e700"
},
"estado": "Activo",
"__v": 0
}
Y para recuperar el docomento lo hago con
const express = require('express');
const app = express();
const Alumnos = require('../models/alumnos');
const Datos = require('../models/datos');
app.get('/alumnos', (req, res, next) => {
Alumnos.find({})
.populate('Contactos')
.exec(
(err, alumnos) => {
if (err) {
return res.status(500).json({
ok: false,
mensaje: 'Error cargando alumnos',
errors: err
});
}
res.status(200).json({
ok: true,
alumnos: alumnos
});
});
});
Y como resultado me da:
{
"ok": true,
"alumnos": [
{
"idContacto": "5c03ae062bb7022f3438e700", // <--- aqui deberia de mostrarse un objeto del documento contacto
"__v": 0,
"estado": "Activo"
}
]
}
Es decir, solo me muestra el id de idContato, no me muestra el objeto completo del contacto.
¿Qué puede estar mal?
Gracias por adelantado
Juan Carlos
Valora esta pregunta
0