javascript - 使用 OR 对多对多搜索进行序列化

标签 javascript mysql node.js sequelize.js

我的代码的主要思想是创建一个搜索字段,我有两个多对多字段,并且我想绑定(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/

相关文章:

php 从数据库中检索时显示多个回显

node.js - ionic 和 Electron 应用程序未启动。启动应用程序时出错,在 {Project Directory} 中找不到模块

javascript - 在 HTML 页面中使用 JavaScript 读取/查询 Google 电子表格

javascript - 永远循环并提供增量时间

python - 重复批量插入 MySQL

node.js - POST http ://localhost:3000/api/signup/404 (Not Found)

javascript - 为什么Sequelize将 'media'复数为medium

javascript - 相同的 cookie,ColdFusion 和 JavaScript 之间的值不同

javascript - Mocha - 命令行 - 我们需要测试文件的报价吗

mysql - innodb恢复后如何重启mysql