2016-03-02 4 views
1

У меня есть три модели, обсуждение пользователя и сообщение, где:Sequelize цепи найти с belongsTo

Message.belongsTo(models.Discussion, {as: 'discussion'}) 
Discussion.belongsToMany(models.User, {through: models.UserDiscussion}) 

Я хотел бы получать все сообщения, касающиеся конкретного пользователя. От пользователя я могу легко получить все обсуждения с user.getDiscussions(). Но тогда я не знаю, как найти сообщения в одном запросе. После того, как у меня есть массив дискуссий, я могу назвать найти

models.Message.findAll({where: {discussionId: discussions[i].id}}) 

для каждой дискуссии в массиве, но это асинхронный, и я не знаю, как приковать их, чтобы возвращать только сообщения.

Нет ли геттера с принадлежностью к отношениям?

ответ

1

Где вы ищете для вашего пользователя, вы должны быть в состоянии сделать что-то вроде:

Discusson.findAll({ 
    // where query 
    }, 
    { 
     include: [Message] 
    }) 
    .then(function(user) { 

    }); 
Смежные вопросы