Le problème est que je ne sais pas s'il y a quelque chose qui ne va pas dans la façon dont j'insère les données dans la publication, ou si le problème vient de la syntaxe HTML des propriétés de l'objet dans lequel j'essaie d'accéder au tableau.
C'est mon modèle et je souhaite insérer une valeur dans "cantidad" du tableau "MaterialesProductos".
const mongoose = require('mongoose') const Schema = mongoose.Schema; const bodyParser = require('body-parser') const ProductoSchema = new Schema({ IdProducto:{type:String}, MaterialesProductos:[{nombre:{type:String},cantidad:{type:Number}}], precio:{type:Number}, image:{type:String}, nombre:{type:String}, descripcion:{type:String}, }); const Producto = mongoose.model('Producto',ProductoSchema); module.exports = Producto;
Ceci est mon message, j'utilise "req.body" pour insérer toutes les données. Effacez toujours le tableau.
const Producto = require('../models/Productos.js') const fileUpload = require('express-fileupload') const path = require('path') module.exports = (req,res)=>{ console.log(req.body) let image = req.files.image; image.mv(path.resolve(__dirname,'..','public/img',image.name),async (error)=>{ await Producto.create({ ...req.body, image: '/img/' + image.name }) res.redirect('/AgregarProductos') }) }
J'ai essayé d'utiliser MaterialesProductos[].cantidad ou MaterialesProductos[][cantidad] etc. mais je ne parviens pas à insérer la valeur.
<div class="control-group"> <div class="form-group floating-label-form-group controls"> <input type="button" name="abrirse" id="open" value="Agregar materiales"> <div id="popup" style="display: none;"> <div class="content-pop"> <div><a href="#" id="close">X</a></div> <% for (var a = 0; a < materiales.length; a++) { %> <div> <%=materiales[a].Descripcion%> <input type="number" value="0" name="MaterialesProductos.cantidad" min="0"> </div> <% } %> </div> </div> </div> </div>
Eh bien, j'ai fait quelques recherches et je n'ai pas trouvé de solution. Je dois donc le faire manuellement.
En utilisant
MaterialesProductos[nombre]
(可以是任何内容),我使用req.body.MaterialesProductos[nombre]
pour obtenir la valeur dans le tableau, je peux y accéder. En utilisant$push
(我无法插入或创建它,所以我只能updateOne
) Je crée d'abord le document, puis après l'avoir mis à jour, j'ajoute un tableau contenant les deux objets.Des choses comme ça :