miércoles, 3 de febrero de 2021

Otras operaciones sobre un modelo en Sequelize

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');

});