gpt4 book ai didi

node.js - 在子数组上使用 "where"和 "in"时出现 Sequelize 错误

转载 作者:IT老高 更新时间:2023-10-28 22:01:36 25 4
gpt4 key购买 nike

这是我的模型定义:

var Tag = sequelize.define('Tag', {
name: Sequelize.STRING
});

var Event = sequelize.define('Event', {
name: Sequelize.STRING,
});

Event.hasMany(Tag, {as: 'tags', through: 'event_tags', foreignKey: 'eventId'});
Tag.hasMany(Event, {as: 'events', through: 'event_tags', foreignKey: 'tagId'});

换句话说,就是:有事件和标签。事件被标记了许多标签。

我正在尝试运行此查询:

Event
.findAndCountAll({
include: [{model: Tag, as: 'tags'}],
where: {'tags.id': {in: [1,2,3,4]}},
order: order,
limit: pageSize,
offset: pageSize * (page - 1),
})
.success(function(result) {

...
});

但是我收到了这个错误:

   \node_modules\sequelize\lib\dialects\abstract\query-generator.js:1134
var logicResult = Utils.getWhereLogic(logic, hash[key][logic]);
^
TypeError: Cannot read property 'in' of undefined

我做错了什么?

我之前用过“in”表达式,例如这里:

 Tag
.find({
where: {id: {in: [1,2,3,4]}}
}).success(...)

而且效果很好。

尽管如此,我从未将 in 表达式与子数组一起使用,就像在这种情况下一样。所以我不知道这是否是正确的做法。

最佳答案

不需要“in”属性, Sequelize 自动定义。只需设置数组即可。

Tag.findAll({
where: {
id: [1,2,3,4]
}
}).then(...)

关于node.js - 在子数组上使用 "where"和 "in"时出现 Sequelize 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24920427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com