Я пытаюсь отправить объект JSON на свой Node.js бэкэнд и сохранить данные в MongoDB. У меня есть модель типа продукта, в которой есть вложенный документ поставщиков. Я хочу отправить идентификаторы поставщиков в продукте JSON, и Node принесет мне поставщиков, которые у меня уже есть в моей базе данных.
Это моя модель Node
var mongoose = require ('mongoose');
var uniqueValidator = require('mongoose-unique-validator');
var Proveedor = require('../models/proveedor');
var Schema = mongoose.Schema;
var productoSchema = new Schema ({
nombre :{ type : String, required : [true, 'El nombre es necesario'] },
descripcion :{ type: String, required: [true, 'La descripcion es necesaria']},
img : {type: String, required:false},
stock : {type : String, required : [true, "El stock es necesario"]},
precio : {type: String, required : [true, " El precio es necesario"]},
proveedor:{
type: Schema.Types.ObjectId,
ref:'Proveedor',
//required: [true, "el id del proveedor es requerido"]
}
/*type: Schema.Types.ObjectId,
ref:'Proveedor',
required: [true, "el id del proveedor es requerido"],
//required: [true, "el nombre del proveedor es requerido"] */
}, {collection : 'productos'});
productoSchema.plugin(uniqueValidator, { message: 'debe ser único' });
module.exports = mongoose.model('Producto', productoSchema);
и это - это JSON, которое вы должны получить
{
"_id": "5f1ca00e75f5ae1a0c1f1008",
"nombre": "Minitor",
"descripcion": "24' ",
"img": "null",
"stock": "1",
"precio": "5000 $",
"__v": 0,
"proveedor": [
{
"_id": "5f1b6043c142eb1b685de68b"
},
{
"_id": "5f1b6013c142eb1b685de68a"
}
]
}
, и управляется express сообщением конечной точки
app.post('/', mdAutenticacion.verificaToken, (req, res) => {
var body = req.body;
var producto = new Producto({
nombre: body.nombre,
descripcion: body.descripcion,
img: body.img,
stock: body.stock,
precio: body.precio,
proveedor: body.proveedor,
});
producto.save((err, productoGuardado) => {
if (err) {
return res.status(400).json({
ok: false,
mensaje: 'Error al generar producto',
errors: err
});
}
res.status(200).json({
ok: true,
producto: productoGuardado,
productoToken: req.producto
});
});
});
Но когда я отправляю идентификаторы поставщиков, он не создает вложенные документы с двумя поставщиками и их данными
Мне нужно, чтобы при отправке идентификаторов они приносили мне поставщиков, которые у меня есть в базе данных, со всеми их данными, что-то вроде этого ...
{
"_id": "5f1ca00e75f5ae1a0c1f1008",
"nombre": "Monitor",
"descripcion": "24' ",
"img": " ",
"stock": "1",
"precio": "5000",
"__v": 0,
"proveedor": [
{
"_id": "5f1b6043c142eb1b685de68b",
"nombre": "Marcelo",
"direccion": "Ituzaingo",
"cuit": "123456789212",
"email": "Marcelo@gmail.com",
"telefono": "123456789121",
"situacion_afip": "Proveedor 2"
},
{
"_id": "5f1ef5162f662d1ae768666b",
"nombre": "Andre",
"direccion": "Ituzaingo",
"cuit": "9191919",
"email": "Andre@gmail.com",
"telefono": "919191191",
"situacion_afip": "Proveedor 3"
}
]
}