MongoDBのあいまいな検索を実行する方法
MongoDBでは正規表現を用いたあいまい検索が可能です。手順は以下のとおりです。
- キーワード
- キーワード
- 正規表現 {$regex: “正則表現”}
- {name: {$regex: “关键词”}}
- ボブ
- キーワード
正規表現を用いたあいまい検索の例を次に示します
usersというコレクションがあると仮定して、コレクションには次のようなドキュメントが含まれています。
{ name: "Alice" }
{ name: "Bob" }
{ name: "Charlie" }
aを含む文書を検索したい場合は、次のコードを使用できます。
const keyword = "a";
const regex = new RegExp(keyword);
const query = { name: { $regex: regex } };
db.users.find(query);
上記コードを実行すると、aを含む文書が返されます。すなわち、
{ name: "Alice" }
{ name: "Charlie" }
なお、あやふや検索を行うときは、正規表現のマッチングは大文字小文字を区別します。大文字小文字を無視する場合は、正規表現にiフラグ(例:/ キーワード /i)を追加することもできます。これにより、大文字小文字を区別せずにマッチングできます。
更に他の正規表現のメタキャラクタや修飾子を併用することで、より複雑な曖昧検索を実現できます。具体的な使い方は、正規表現に関するドキュメントやチュートリアルを参照ください。