i.b*_*rod 3 mysql node.js sequelize.js
我有执行原始查询的此方法:
Friendship.getFriends= async (userId)=>{
const result = await sequelize.query(`select id,email from users where
users.id in(SELECT friendId FROM friendships where friendships.userId =
${userId})`);
return result;
};
Run Code Online (Sandbox Code Playgroud)
结果似乎包含相同的确切数据,但是两次:
[ [ TextRow { id: 6, email: 'example3@gmail.com' },
TextRow { id: 1, email: 'yoyo@gmail.com' } ],
[ TextRow { id: 6, email: 'example3@gmail.com' },
TextRow { id: 1, email: 'yoyo@gmail.com' } ] ]
Run Code Online (Sandbox Code Playgroud)
此查询实际上应该只找到两个记录(id的1和6),但是它两次返回具有相同记录的数组。
有人可以解释一下这是怎么回事吗?
编辑:模型:
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', {
email: { type: DataTypes.STRING, unique: true },
password: DataTypes.STRING,
isActive:{type:DataTypes.BOOLEAN,defaultValue:true}
});
module.exports = (sequelize, DataTypes) => {
const Friendship = sequelize.define('Friendship', {
userId: DataTypes.INTEGER,
friendId: DataTypes.INTEGER,
});
Run Code Online (Sandbox Code Playgroud)
小智 6
尝试在第二个参数中将查询类型设置为SELECT。
sequelize.query(queryString, {type: sequelize.QueryTypes.SELECT})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
654 次 |
最近记录: |