Tengo un esquema de mangosta que tiene un mapa (retención) anidado en otro mapa (usuarios).
const UserSchema = new mongoose.Schema({ users: { type: Map, of: new mongoose.Schema({ holding: { type: Map, of: Number, }, }), }, }); const UserModel = mongoose.model('black', UserSchema);Creo un nuevo usuario con la siguiente información.
var user = new userModel({ users: { jose: { holding: { itc: 9, hcl: 300 }, }, }, }); Ahora estoy tratando de editar un valor en las holdings del mapa para mi usuario con el método establecido. Lo cual puedo hacer de la siguiente manera.
await user.set(`users.jose`, { holding: { itc: 90, hcl: 300 }, }); user.get(`users.jose.holding.itc`) //displays new value(90)Sin embargo, si trato de establecer los valores en el mapa anidado "manteniendo" directamente, esto no funciona.
es decir, el siguiente código falla (el valor no está establecido)
await user.set(`users.jose.holding.itc`, 1000); user.get(`users.jose.holding.itc`) //gives old value or does not display 1000¿Por qué falla esto? .¿Cómo configuro valores en un mapa anidado en mongoose directamente?