I'm using the sequelize ORM to fetch data from a PSQL DB. However, when I retrieve something, a whole bunch of data is given. The only data I want is inside 'dataValues'. Of course, I can use object.dataValues. But, is there any other good solutions?
I'm using Sequelize 4.10
To get only the dataValues from Sequelize ORM, we can set the raw option to true . Model. findAll({ raw: true, //... }); to call findAll with an object with the raw property set to true to only return the dataValues in the query results.
According to the doc : If you do not provide other arguments than the SQL, raw will be assumed to the true, and sequelize will not try to do any formatting to the results of the query.
Yes you can
Model.findAll({ raw: true, //Other parameters });
would return just the data and not the model instance
Sequelize wraps all it's return values in a virtual object that contains meta data. If you have an object and you just want the undecorated data values, you can unwrap them like so:
Model.findById(1).then(data => { console.log(data.get({ plain: true })); });
Additionally if you just want to print out the object you can use the .toJSON
method.
Model.findById(1).then(data => { console.log(data.toJSON()); });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With