gpt4 book ai didi

node.js - 当我更改 fieldName 并包含它时,Sequelize 会进行错误的查询

转载 作者:行者123 更新时间:2023-12-03 22:26:28 26 4
gpt4 key购买 nike

我的 Sequelize 模型之一看起来像这样,

Sequelize.define('unit', {
...
complex_id: { // 'complex_id' is a key to use in my script
field: 'building_id', // There's a field named 'building_id' in my 'complex' table
reference: {
model: 'complex',
key: 'id'
},
},
building_id: { // 'building_id' is a key to use in my script
field: 'immeuble_id', // There's a field named 'immeuble_id' in my 'immeuble' table
reference: {
model: 'building',
key: 'id',
},
},
})

由于building_id,这会令人困惑,但背后有一个很长的故事。

我试图找到字段“complex_id”具有特定值的单位,这意味着单位表中名为“building_id”的字段。

当我直接选择单位时似乎没问题

unit.findAndCount({
where: { complex_id: 123 }
})
// => SELECT * FROM unit WHERE building_id = 123

但是,当我尝试选择另一个实体并包含该单位时,它以奇怪的方式工作

another_entity.findAndCount({
where: { },
include: [{
model:unit,
where: { complex_id: 123 },
}],
})
// => SELECT * FROM onother_entity INNER JOIN unit ON .... AND immeble_id = 123

Sequelize 将“complex_id”转换为“building_id”。

但是它不会停止转换,直到将“complex_id”更改为“immeuble_id”

我不知道为什么 Sequelize 会这样。我应该怎么做才能让它按预期工作?

最佳答案

试试这个

another_entity.findAndCount({
where: {"$unit.complex_id$": 123},
include: [unit]
})

关于node.js - 当我更改 fieldName 并包含它时,Sequelize 会进行错误的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58803164/

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