【发布时间】:2016-07-27 02:45:24
【问题描述】:
我的应用程序中有一个人名搜索框。候选人的姓名存储为 firstName,然后是 lastName。当我搜索应用程序时,应用程序输入提交对 ajax 函数的调用,我在其中有这段代码。
filters.where = {
$or: ['firstName', 'lastName', 'email'].map((item) =>
({[item]: {[queryClause]: `%${query}%`}}))
};
const scope = req.query.list;
const candidates = await CandidateModel.scope(scope).findAll(filters);
因此,如果我在搜索框中输入“John”,它会找到候选人,如果我输入单词“Smith”,它会找到候选人。
问题是,如果我输入全名“John Smith”,它不会出现,因为查询是检查“John Smith”是否等于“John”,即名字,或者“ John Smith”等于姓氏“Smith”。它不等于其中任何一个。
有没有办法通过 sequalize 中的组合字段进行过滤,以便测试查询是否匹配组合的 firstName 和 lastName 字段?
【问题讨论】:
标签: sql node.js sequelize.js