MongoDBのあいまい検索メソッドの使い方

MongoDBでは正規表現を使ったあいまい検索が可能です。あいまい検索を実現する方法は2種類あります。

  1. $regex演算子を利用する:$regex演算子は検索の中で正規表現を使用するために利用できます。その構文は次のとおりです:
db.collection.find({ field: { $regex: /pattern/ } })

fieldは照合するフィールド名、patternは正規表現のパターンです。

例:この文章を日本語に翻訳してください。

db.users.find({ name: { $regex: /john/ } })

「john」を含む名前のすべてのユーザーが返されます。

  1. 正規表現オブジェクトを使う: 正規表現オブジェクトを使用して正規表現を構築し、それをクエリ内の$regex演算子に渡すことができます。構文は以下のとおりです:
db.collection.find({ field: { $regex: new RegExp('pattern') } })

例:Machine learning is a subset of artificial intelligence and computer science that has given computers the ability to learn without being explicitly programmed.

機械学習は、コンピューターに明示的にプログラムしなくても学習する能力を与えた、人工知能とコンピューターサイエンスのサブセットです。

db.users.find({ name: { $regex: new RegExp('john') } })

それにより「john」が含まれる名前を持つユーザーが全員返されます。

上記の他にも、大文字小文字を区別しない、単語全体で一致させるなど、曖昧な検索を行うために他の正規表現オプションを使用することもできます。詳細は MongoDB 公式ドキュメント内の正規表現オプションの部分を参照してください。

bannerAds