我的應用程序中有一個人名搜索框。候選人姓名存儲爲firstName,然後是lastName。當我搜索應用程序時,應用程序輸入提交了一個調用ajax函數,我有這段代碼。在Sequelize中一次查詢兩個組合字段
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」,即第一個名稱,或者如果「約翰史密斯」等於「史密斯」,即最後一個名字。它不等於這些。
有沒有一種方法可以通過sequalize中的組合字段進行過濾,因此它會測試查詢是否與firstName和lastName字段相結合?
如果名字/姓氏在其中包含多個單詞,則不起作用。例如firstName ='Charles'lastName ='de Gaulle'。 – Yegor