Sequelize getting all fields from join table when requesting joined model

66 views
Skip to first unread message

joehe...@gmail.com

unread,
Feb 7, 2016, 11:16:46 PM2/7/16
to Sequelize
Hi,

I have two models, Food and Nutrient. They're connected through a model FoodNutrient which stores additional columns relevant to each pair. When I do Food.getNutrients() though, I can see sequelize is selecting all the Nutrient data, but also every column from the join table (of which there are many). These are columns which I don't need.

I don't know much about db design, so I'm wondering if this is necessary? Or is it a bug I should file on github? The intended functionality works 100%, but I'm worried that this could slow down my queries.

Here's the select query Sequelize is making:

SELECT "Nutrient"."Nutr_No", "Nutrient"."Units", "Nutrient"."Tagname", "Nutrient"."NutrDesc", "Nutrient"."Num_Dec", "Nutrient"."SR_Order", "FoodNutrient"."NDB_No" AS "FoodNutrient.NDB_No", "FoodNutrient"."Nutr_No" AS "FoodNutrient.Nutr_No", "FoodNutrient"."Nutr_Val" AS "FoodNutrient.Nutr_Val", "FoodNutrient"."Num_Data_Pts" AS "FoodNutrient.Num_Data_Pts", "FoodNutrient"."Std_Error" AS "FoodNutrient.Std_Error", "FoodNutrient"."Src_Cd" AS "FoodNutrient.Src_Cd", "FoodNutrient"."Deriv_Cd" AS "FoodNutrient.Deriv_Cd", "FoodNutrient"."Ref_NDB_No" AS "FoodNutrient.Ref_NDB_No", "FoodNutrient"."Add_Nutr_Mark" AS "FoodNutrient.Add_Nutr_Mark", "FoodNutrient"."Num_Studies" AS "FoodNutrient.Num_Studies", "FoodNutrient"."Min" AS "FoodNutrient.Min", "FoodNutrient"."Max" AS "FoodNutrient.Max", "FoodNutrient"."DF" AS "FoodNutrient.DF", "FoodNutrient"."Low_EB" AS "FoodNutrient.Low_EB", "FoodNutrient"."Up_EB" AS "FoodNutrient.Up_EB", "FoodNutrient"."Stat_Cmt" AS "FoodNutrient.Stat_Cmt", "FoodNutrient"."AddMOd_Date" AS "FoodNutrient.AddMOd_Date" FROM "Nutrients" AS "Nutrient" INNER JOIN "FoodNutrients" AS "FoodNutrient" ON "Nutrient"."Nutr_No" = "FoodNutrient"."Nutr_No" AND "FoodNutrient"."NDB_No" = '01088';


Thanks,

Joe

Mick Hansen

unread,
Feb 9, 2016, 5:19:18 AM2/9/16
to joehe...@gmail.com, Sequelize
That's as expected, you can use through: {attributes: []} to disable
--
Mick Hansen
@mhansendev
mhansen.io

Joe Henry

unread,
Feb 9, 2016, 9:53:22 PM2/9/16
to Mick Hansen, Sequelize
Cool, thanks Mick.
Reply all
Reply to author
Forward
0 new messages