Otras operaciones sobre un modelo en Sequelize
Crear varias instancias a la vez
Además de actualizar una sola instancia con BulkCreate, también podemos crear varias instancias a la vez.
Usuario.bulkCreate([
{ dni: '001', nombre: 'Juan'},
{ dni: '002', nombre: 'Pedro'}
]
)
.then(function(success) {
console.log("La instancias han sido creadas correctamente");
}, function(err) {
console.log(err + " Un usuario ya existe en la base de datos");
});
Visualizar los valores de una instancia
Al insertar una instancia, vamos a usar success.get({ plain: true }) para visualizar la instancia insertada
Usuario.create(
{ dni: '001', nombre: 'Juan'}
)
.then(function(success) {
console.log(success.get({ plain: true }))
console.log("La instancia ha sido creada correctamente");
}, function(err) {
console.log(err + " El usuario ya existe en la base de datos");
});
O tambien podemos usar console.log(JSON.stringify(success));
Recarga de instancias
Si necesitamos sincronizar la instancia, podemos usar el método de reload. Obtendremos los datos actuales de la base de datos y sobrescribirá los atributos
del modelo en el que se ha llamado al método.
Usuario.findOne(
{
where:
{ nombre: 'Juan' }
}).
then(function (usuario) {
if (usuario == null) {
console.log('No existe ningun usuario con ese nombre')
} else {
usuario.nombre='Pedro'
console.log(usuario.dni + ' ' + usuario.nombre);
usuario.reload().then(() => {
console.log(usuario.dni + ' ' + usuario.nombre);
})
}
}).catch(function (err) {
console.log(err + ': Error de obtencion de Usuario');
});
Incremento
Tenemos un producto que tiene
los siguientes valores:·
- id
- nombre
- valor
Incremento del campo valor en 2:
var Producto = require('./models/producto')(sequelize, Sequelize.DataTypes);
Producto.findByPk('1').
then(function (producto) {
if (Producto== null) {
console.log('El producto no encontrado en la base de datos')
} else {
producto.increment('valor',{by: 2} );
}
}).catch(function (err) {
console.log(err + ': Error de obtencion de producto');
});
Drecemento
Tenemos un producto que tiene
los siguientes valores:
- id
- nombre
- valor
Decremento del campo valor en 2:
var Producto = require('./models/producto')(sequelize, Sequelize.DataTypes);
Producto.findByPk('1').
then(function (producto) {
if (Producto== null) {
console.log('El producto no encontrado en la base de datos')
} else {
producto.decrement('valor',{by: 2} );
}
}).catch(function (err) {
console.log(err + ': Error de obtencion de producto');
});