Javascript 使用sequelize的一对一关系?
及 我有名为Friend的模型,上面的用户和 我想创建一个关联,其中Friend在user中有每个用户的名称_1、用户_2以及[id]Javascript 使用sequelize的一对一关系?,javascript,node.js,express,sequelize.js,Javascript,Node.js,Express,Sequelize.js,及 我有名为Friend的模型,上面的用户和 我想创建一个关联,其中Friend在user中有每个用户的名称_1、用户_2以及[id] var User = sequelize.define('User', { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, name: { type: DataTypes.
var User = sequelize.define('User', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
name: {
type: DataTypes.STRING,
allowNull: false
}
像这样,
如何在Node Express中使用Sequelize解决此问题为了查询
朋友
并访问用户名,您需要在这两个实体之间创建类型为hasOne
的关联
"userId_1": "1",
"userId_2": "2",
"user_1": {
"name": "User1 Name"
},
"user_2": {
"name": "User2 Name"
}
然后可以使用Friend.getUser\u 1()
您可以找到有关hasOne关联的更多信息。像这样定义模型:
var Friend = sequelize.define('Friend', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
}
Friend.hasOne(User, { as: 'user_1' }); // this will add the attribute user_1Id to Friend
Friend.hasOne(User, { as: 'user_2' }); // this will add the attribute user_2Id to Friend
}
约束:false
取决于用户1
和用户2
是否为虚构,如果是,则可以删除,如果不是,请保留原样
您可以像这样获取两个用户的数据
var Friend = sequelize.define('Friend', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
userId_1: {
type: DataTypes.INTEGER,
allowNull: false
},
userId_2: {
type: DataTypes.INTEGER,
allowNull: false
}
);
Friend.belongsTo(User, { as : 'user_1' , foreignKey : 'userId_1', constraints: false});
Friend.belongsTo(User, { as: 'user_2', foreignKey : 'userId_2' , constraints:false});
Friend.findAll({
...
包括:[
{
型号:用户,
as:“用户_1”//
var Friend = sequelize.define('Friend', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
userId_1: {
type: DataTypes.INTEGER,
allowNull: false
},
userId_2: {
type: DataTypes.INTEGER,
allowNull: false
}
);
Friend.belongsTo(User, { as : 'user_1' , foreignKey : 'userId_1', constraints: false});
Friend.belongsTo(User, { as: 'user_2', foreignKey : 'userId_2' , constraints:false});
Friend.findAll({
...
include : [
{
model : User ,
as : 'user_1' // <--------- Here is the magic
}, {
model : User ,
as : 'user_2' // <--------- Here is the magic
}
]
})