sequelize fetching associations on find (1.6)

sequelize 1.6 has the following in the changelog:

[FEATURE] added association prefetching for find and findAll

The question is HOW?

I have the following models defined:

var self = {
    Medium: client.define("Medium", {
        name: Sequelize.STRING,
        description: Sequelize.TEXT
    },

    User: client.define("User", {
        firstName: Sequelize.STRING,
        lastName: Sequelize.STRING,
        email: Sequelize.STRING,
        aboutArt: Sequelize.TEXT,
        bio: Sequelize.TEXT,
        password: Sequelize.STRING,
        description: Sequelize.TEXT
    }
};
self.User.hasMany(self.Medium, { as: 'Media' });
self.Medium.hasMany(self.User);

for(var key in self){
    var model = self[key];
    model.sync();
}

later when i fetch a user like this:

 User.find(id)
    .success(function(record) {
        //record has no media!
    })

the User instance does not have a list media. How do i auto fetch associations?

Answers


BTW: Now that Sequelize 1.6.0 is out, the syntax for the eager loading has slightly changed:

User.find({ where: {id: id}, include: [Media] }).success(function(user){ 
  console.log(user.media)
})

So you'll have to pass the Model instead of the Model's name to the include statement.


sdepold actually wrote the code, but I believe the syntax he settled on for include is:

User.find({ where: {id: id}, include: ['Media'] }).success(function(user){ 
  console.log(user.media)
})

The answer is currently only available inside the code, the tests and ... my head :D

User.find({ where: {id: id}, include: ['Media'] }).success(function(user){ 
  console.log(user.media)
})

The reason for the not yet available documentation iiiiiis the fact, that the release is currently an alpha version.


Need Your Help

ui-bootstrap-tpls failed to load template

angularjs twitter-bootstrap

I've inherited an angular project, and it's having problems loading the ui-bootstrap-tpls modules.

How to create an R function programmatically?

r function

Hadley Wickham recently asked an interesting question on the r-devel mailing list, and being unable to find an existing question on the topic on StackOverflow, I thought it might be useful for it e...