gpt4 book ai didi

node.js - Sequelize : how to implement a search based on associated keywords?

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

我希望从数据库中返回与一个或多个关键字相关联的所有文章,但我不确定是否有正确的方法来解决这个问题?

我正在使用 Sequelize 3.x 和 node.js 3.7.0。

数据模型如下所示:

const Article = sequelize.define('article', {
...
}

const Keyword = sequelize.define('keyword', {
name: Sequelize.STRING,
lang: Sequelize.STRING
}

const ArticleKeyword = sequelize.define('article_keyword', {
articleId: Sequelize.INTEGER,
keywordId: Sequelize.INTEGER
}

(Article).belongsToMany(
Keyword, { through: ArticleKeyword, as: 'keyword' });

(Keyword).belongsToMany(
Article { through: ArticleKeyword, as: 'article' });

然后我试过的查询:
var keywordFilter;
if (req.body.keywords) {
var keywords = req.body.keywords);
if (typeof keywords === 'string') {
keywords = keywords.split(/ *, */);
}
keywordFilter = { name: { $in: keywords } };
}

Article.findAll({
where: {
deleted: false
},
include: [{
model: Keyword,
as: 'keywords',
where: keywordFilter,
attributes: ['name'],
through: {
attributes: []
}
}]
}).then(function(articles) {
...
});

我在这里发现的问题不是仅选择具有匹配关键字的文章,而是返回所有文章,然后简单地选择查询中指定的关键字以获得结果。

任何人都可以建议正确的方法来解决这个问题吗?

最佳答案

嗨,你可以试试通过吗

require:true 

在内部连接和检查的包含块中

引用: https://stackoverflow.com/a/31680398/4583460

关于node.js - Sequelize : how to implement a search based on associated keywords?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42497062/

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