mysql - 在 for 循环 findAll 查询和合并结果上使用 Sequelize

标签 mysql node.js sequelize.js

我正在大学类(class)中编写开源项目

这是一个通过输入关键字除以逗号来搜索另一个表的值的函数。

在此示例数据下

Python,CPP,Csharp

var keyword = result[0].keyword;
var keyword_arr = [];
var keyword_split = keyword.split(',');
for (var i in keyword_split)
{
   keyword_arr.push(keyword_split[i]);
}

我已经成功地用上面的逗号分隔它们,但我正在寻找sequelize中的循环。

“错误:发送后无法设置 header 。”

返回错误,不执行。

我想输出合并后的结果。我该怎么办?

我的代码是

for (i = 0; i < keyword_arr.length; i++) {
    query += models.contents.findAll({
        where: {keyword: {like: '%' + keyword_arr[i] + '%'}},
        raw: true
    });
}

问候。

最佳答案

您的方向是正确的,但您可以这样做:

queries = [];

for (i = 0; i < keyword_arr.length; i++) {
    queries.push({keyword: {like: '%' + keyword_arr[i] + '%'}});
}

models.contents.findAll({
    where: {
        $or : queries
    }
    raw: true
}).then(results => {
    console.log(results); // <---- Check this
})
<小时/>

NOTES :

models.contents.findAll() //<---- Returns promises

You can't just combine the promises by += as its not string or number like that

In your case , it will create and run the query for each tag , so that's not proper way of doing , you should combine the tags and create a single query as I did

关于mysql - 在 for 循环 findAll 查询和合并结果上使用 Sequelize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53433004/

相关文章:

php - 更新查询有效但不插入查询

c++ - QMYSQL驱动加载错误

php - 使用表名作为 php 函数的参数安全吗?

javascript - express-jwt 中缺少 "admin"属性

node.js - 使用 hasOne 和 BelongsTo 对关联进行序列化

MySQL在逗号列表中搜索

node.js - 使用 Webpack 构建 Angular 2 for NPM 包

javascript - 由 C++ 中的 opencv 控制的 Parrot AR 无人机

node.js - 如何在返回分页元数据和数据集的 graphql 中实现分页

node.js - SequelizeEagerLoadingError 当模型之间的关系已经被定义时