Este es mi modelo shema:
const DemoSchema = new Schema({ rowOne: { colOne: { one: { name: String, qty: Number, }, two: { name: String, qty: Number, }, three: { name: String, qty: Number, }, }, }, rowTwo: { colOne: { one: { name: String, qty: Number, }, two: { name: String, qty: Number, }, three: { name: String, qty: Number, }, }, }, });Cuando hago esto, guarda datos en mi modelo:
const product = await new Regal({ rowOne: { colOne: { two: { name: productName, qty: productQty } } }, }); product.save();Mi pregunta es, ¿cómo puedo reemplazar rowOne, colOne y two con la entrada del usuario?
Intenté esto:
const row = req.body.rows // this must be rowOne or rowTwo const column = req.body.column // colOne or other (colOne to colNine) const col = req.body.col // one, two or three const productName = req.body.name const productQty = req.body.qtyIntento 1:
const product = await new Regal({ `${row}`: { `${column}`: { `${col}`: { name: productName, qty: productQty }}}});'Error --> Se esperaba asignación de propiedad.'
Intento 2:
const product = await new Regal(`{${row}: { ${column}: { ${col}: { name: ${productName}, qty: ${productQty} } } } }`);'Error --> El parámetro "obj" para Document() debe ser un objeto, obtuvo {rowOne: { colOne: { one: { name: Milk, količina: 250 } } } }'
Puede usar variables como claves de objetos usando corchetes.
let user = 'username'; let newObj = { [user]:'saloni' } esto creará un objeto como {username:saloni} . De esta forma, puede reemplazar fila uno, columna uno y dos con la entrada del usuario almacenándolos en una variable y luego utilícelos.