Regular Expression (正規表現)

最終更新:2026-10-09

Regular Expression (正規表現)

Regular Expression はクエリのパターンマッチング用の BSON 型で、`{ field: /pattern/ }` と同等です。PCRE 構文とフラグ(i 大文字小文字無視、m 複数行、s ドットオール、x 拡張)をサポートします。アンカーなしのパターンはインデックスを使えずコレクションスキャンを強制するため、大規模コレクションでは注意して使ってください。

カテゴリBSON 型
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ field: /^prefix/ }
{ field: /pattern/i }
new RegExp("pattern", "i")

戻り値:正規表現値そのもの。クエリでは一致するドキュメントを返します

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// Regular Expression: パターンクエリ
use shop
db.users.find({ name: /^alice/i })
db.products.find({ sku: { $regex: 'AB-\\d{4}' } })

出力:

// 名前が alice で始まるユーザー(大文字小文字無視)と、sku が AB-1234 のような商品を返す

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q正規表現クエリはインデックスを使えますか?
A/^abc/ のようなアンカー付きパターンのみインデックスを使えます。他はコレクションをスキャンします。
Q$regex は /pattern/ と同じですか?
Aはい。どちらも正規表現クエリを構築します。$regex は文字列を受け取るだけです。
Q正規表現クエリが遅いのですが、どうすれば?
Aインデックス付きのアンカー付きプレフィックス一致に切り替えるか、全文検索に text インデックスを使います。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%