MongoDBのあいまいな検索を実行する方法

MongoDBでは正規表現を用いたあいまい検索が可能です。手順は以下のとおりです。

  1. キーワード
  2. キーワード
  3. 正規表現 {$regex: “正則表現”}
  4. {name: {$regex: “关键词”}}
  5. ボブ
  6. キーワード

正規表現を用いたあいまい検索の例を次に示します

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)を追加することもできます。これにより、大文字小文字を区別せずにマッチングできます。

更に他の正規表現のメタキャラクタや修飾子を併用することで、より複雑な曖昧検索を実現できます。具体的な使い方は、正規表現に関するドキュメントやチュートリアルを参照ください。

bannerAds