与 Sequelize 的嵌套关系

本教程将介绍与 Sequelize 的嵌套关系的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

与 Sequelize 的嵌套关系 教程 第1张

问题描述

我正在使用带有 Node + MySQL 的 Sequelize.

我有一个类似这样的模型结构:

// models:
var Group, Issue, Invite;

// many Issues per Group
Group.hasMany(Issue);
Issue.belongsTo(Group);

// Groups can invite other Groups to work on their Issues
Issue.hasMany(Invite, {foreignKey: groupId});
Invite.belongsTo(Issue, {foreignKey: groupId});
Group.hasMany(Invite, {foreignKey: inviteeId});
Invite.belongsTo(Group, {foreignKey: inviteeId});

// given an Issue id, include all Invites + invited Groups (inviteeId) - But how?
var query = {
 where: {id: ...}, 
 include: ???
};
Issue.find(query).complete(function(err, issue) {
 var invites = issue.invites;
 var firstInvitedGroup = issue.invites[0].group;
 // ...
});

这有可能吗?有哪些可能的解决方法?谢谢!

推荐答案

Sequelize Docs: Nested Eager Loading

示例

Issue.find({
 include: [
  {
model: Invite,
include: [Group]
  }
 ]
});

好了关于与 Sequelize 的嵌套关系的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。