2017-09-23 281 views
0

我使用了sequelize ORM从PSQL数据库获取数据。但是,当我检索某些内容时,会给出一大堆数据。我想要的唯一数据就是'dataValues'内部。当然,我可以使用object.dataValues。但是,还有其他什么好的解决方案吗?从Sequelize ORM获取数据值

我使用Sequelize 4.10

回答

0

只发生问题当我登录使用:

console.log(Model.findAll());

如果我把它保存到一个变量,我可以直接访问对象中没有使用“dataValues

0

只选择一些属性,你可以使用属性选项。大多数情况下,你传递一个数组:

Model.findAll({ 
    attributes: ['foo', 'bar'] 
}); 

来源:Here

+0

不,我需要表中的所有列。但为了访问,我必须使用object.dataValues –

0

是的,你可以

Model.findAll({ 
raw: true, 
//Other parameters 
}); 

将只返回数据,而不是模型实例

+0

我可以将它应用于全局的所有查询吗? –

+0

您可以在创建连接时定义它。类似于 'const sequelize = new Sequelize('connectionUri',{ define:{ raw:true } });'。 从文档[此处](http://docs.sequelizejs.com/manual/installation/getting-started.html#application-wide-model-options) – Shivam

1

Sequelize包装中包含元数据的虚拟对象的所有它的返回值。如果你有一个对象,你只想未加装饰的数据值,就可以解开他们像这样:

Model.findById(1).then(data => { 
    console.log(data.get({ plain: true })); 
}); 

此外,如果你只是想打印出来就可以使用.toJSON方法的对象。

Model.findById(1).then(data => { 
    console.log(data.toJSON); 
});