APIで部分一致検索がしたいです。

銀行名取得APIのgraphql(銀行名取得)のソースコードを読んでいて、検索処理のやり方が分かりません。
以下ソースコードは「get.js」というファイルで検索処理をしているところまでは特定しました。
銀行名取得APIの設計書よりbankCodeより完全一致でbankId,bankCode,bankNameを検索しております。
調べるとこちらのソースコードではmodule.exportsが欲しいデータを持ってきているようです。
ただjavaの文法では完全一致検索はmatchesやcontainsメソッドを使ったりするようで、今回部分一致検索と完全一致検索を行いたいのですが、どうやったらいいのか悩んでいます。

こちらがソースコードになります。

const Bank = require('../../models/mt_bank');
module.exports = async (obj, args, context, info) => {
const { bankCode } = args;
return await Bank.findOne({
where: {
bankCode,
},
}).then((item) => {
return item;
});
};
以下、取ってくる情報です。
/*
query {
getBank(bankCode: "0005") {
bankId,
bankCode,
bankName
}
}

社内で質問すると、
where: {
bankCode,
},
だと完全一致検索になるので、部分一致検索になるようにするには where の {} の中身を修正する必要があります。

と言われたので、
where以下 someAttribute: {[Op.like]: '%hat'} が部分一致検索の例文だと思うので、

where: {
someAttribute: {
[bankCode.like]: '%',
} 
がやりたかったコードになると思います。

「%hat」の部分が部分一致の箇所だと思うのですが、画面で検索された言葉を入力したいです。
where: {
bankCode,
}
が完全一致ならば、
where: {
someAttribute: {
[bankCode.like]: '%bankCode',
} 
とすれば検索ワードの部分一致検索になるのでしょうか?

と質問したら「全然違います。自分で考えてみてください」と言われました。

全然わからないのですがどうしたらいいのでしょうか?

コメントを投稿

0 コメント