2017-09-23 63 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); 
});