我的代码的主要思想是创建一个搜索字段,我有两个多对多字段,并且我想绑定(bind)多对多表的搜索
我想选择表 modelos 内的 modelos.nome_modelo_produto 字段,但从未起作用,因为即使在我提到表之间的关系之后,sequelize 也无法识别该字段:
Modelo.belongsToMany(Produto, {through: 'ProdutosModelos'});
Produto.belongsToMany(Modelo, {through: 'ProdutosModelos'});
搜索的想法是这样的......
Table.findAll({
where: {
[Db.Sequelize.Op.or]: [
{'nome_produto': Db.sequelize.where(Db.sequelize.fn('LOWER', Db.sequelize.col('nome_produto')), 'LIKE', '%' + req.query.search + '%')},
{'$modelos.nome_modelo_produto$': Db.sequelize.where(Db.sequelize.fn('LOWER',Db.sequelize.col('$modelos.nome_modelo_produto$')), 'LIKE', '%' + req.query.search + '%')}
]
}
})
但是不起作用... 有人可以帮助我或给我一个继续的方法吗?
最佳答案
如果有人遇到此错误,我已经检查过,当您在其中使用限制或偏移标签时,会出现一个我无法解决的烦人错误。
所以我的建议是删除偏移量和限制,并重命名表格列以仅通过名称查找,例如,如果表格内容中有字段标签,则可以重命名标签字段to things_tags,如果是关系型字段,在where里面设置字段时只能插入字段名,不能插入表名。
关于javascript - 使用 OR 对多对多搜索进行序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59380994/