继承字段关联
Sequelize field association
我有两个 table。如何在 Sequelize 中第一个 table 中的 link 字段和第二个 table 中的 id
字段?示例:
第一个table:
id | author | text
1 | 2 | 'test1'
2 | 2 | 'test2'
3 | 1 | 'test3'
第二个table:
id | name
1 | John
2 | Jane
根据第一个 table 结果的请求值应在 author
字段中包含名称。示例:
first.findAll().then(function(result) {
console.log(result);
});
Returns它:
id | author | text
1 | Jane | 'test1'
2 | Jane | 'test2'
3 | John | 'test3'
(抱歉英语不好)
您正在寻找 associations.
您的模型看起来像这样
'use strict';
module.exports = function(sequelize, DataTypes) {
var Table1 = sequelize.define('Table1', {
text: {
type:DataTypes.STRING
},
authorId: {
type: DataTypes.INTEGER,
references: "Table2",
referencesKey: "id",
allowNull: false
}
}, {
classMethods: {
associate: function(models) {
Table1.belongsTo(models.Table2, { foreignKey: 'authorId' })
}
}
});
return Table1;
};
'use strict';
module.exports = function(sequelize, DataTypes) {
var Table2 = sequelize.define('Table2', {
name: {
type:DataTypes.STRING
}
}, {
classMethods: {
associate: function(models) {
Table2.hasMany(models.Table1, { foreignKey: 'authorId' })
}
}
});
return Table2;
};
而且您似乎想要预先加载您的作者。
Table1.findAll({
include:[
{ model: Table2 }
]
}).then(function(result){
console.log(result.get({plain:true})
})
我有两个 table。如何在 Sequelize 中第一个 table 中的 link 字段和第二个 table 中的 id
字段?示例:
第一个table:
id | author | text
1 | 2 | 'test1'
2 | 2 | 'test2'
3 | 1 | 'test3'
第二个table:
id | name
1 | John
2 | Jane
根据第一个 table 结果的请求值应在 author
字段中包含名称。示例:
first.findAll().then(function(result) {
console.log(result);
});
Returns它:
id | author | text
1 | Jane | 'test1'
2 | Jane | 'test2'
3 | John | 'test3'
(抱歉英语不好)
您正在寻找 associations.
您的模型看起来像这样
'use strict';
module.exports = function(sequelize, DataTypes) {
var Table1 = sequelize.define('Table1', {
text: {
type:DataTypes.STRING
},
authorId: {
type: DataTypes.INTEGER,
references: "Table2",
referencesKey: "id",
allowNull: false
}
}, {
classMethods: {
associate: function(models) {
Table1.belongsTo(models.Table2, { foreignKey: 'authorId' })
}
}
});
return Table1;
};
'use strict';
module.exports = function(sequelize, DataTypes) {
var Table2 = sequelize.define('Table2', {
name: {
type:DataTypes.STRING
}
}, {
classMethods: {
associate: function(models) {
Table2.hasMany(models.Table1, { foreignKey: 'authorId' })
}
}
});
return Table2;
};
而且您似乎想要预先加载您的作者。
Table1.findAll({
include:[
{ model: Table2 }
]
}).then(function(result){
console.log(result.get({plain:true})
})