2011-11-07 38 views
24

指定特定字段好的,所以我在NodeJS中有一個項目,我正在使用Sequelize作爲MySQL ORM。這個東西非常有效,但是我試圖弄清楚是否有一種方法可以指定在查詢的基礎上返回哪些字段,或者是否有辦法在某處執行.query()。使用Sequelize(NodeJS)而不是*

例如在我們的用戶數據庫中,可能會有大量荒謬的記錄和列。在這種情況下,我只需要返回三列,這樣就可以更快地得到這些列。但是,Sequelize只是查詢表格中的所有內容「*」,以儘可能完成完整的對象模型。這是我想在應用程序的這個特定區域中繞過的功能。

+0

哦哇,現在有關於它的文檔: - /跛腳。 alessioalex是對的。 – sdepold

回答

43

你必須作爲對象,你傳遞給的findAll()屬性來指定屬性:

Project.findAll({attributes: ['name', 'age']}).on('success', function (projects) { 
    console.log(projects); 
}); 

我如何發現這一點:

查詢首先被調用的位置:https://github.com/sdepold/sequelize/blob/master/lib/model-definition.js#L131
然後在這裏構建:https://github.com/sdepold/sequelize/blob/master/lib/connectors/mysql/query-generator.js#L56-59

+1

嘿,你可以請檢查鏈接,他們似乎被打破 – sunitj

4

試試這個在版本

  template.findAll({ 
       where: { 
      user_id: req.params.user_id //array 
     }, 
      attributes: ['id', 'template_name'], //object 
      }).then(function (list) { 
      res.status(200).json(list); 
     }) 
相關問題