$replaceAll (全置換)

最終更新:2026-10-09

$replaceAll (全置換)

$replaceAll は、部分文字列の出現箇所をすべて指定の文字列に置き換えます。一括データクリーニングや区切り文字の統一に最適です。find が空文字列だとエラーになり、省略した場合は入力がそのまま返されます。最初の 1 件だけを置き換える $replaceOne とは違い、出現箇所をすべて置き換えるリテラル置換です。パターンマッチングには $regexReplace を使います。null または欠落の入力は null を返します。

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

📝 構文

{ $replaceAll: { input: <string-expression>, find: <find>, replacement: <replacement> } }

⚙️ パラメータ

input必須。処理対象の文字列。
find必須。空でない検索文字列。
replacement必須。置換文字列。

戻り値:置換後の文字列。入力が null の場合は null。

▶ 例

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

// $replaceAll: 電話番号からハイフンをすべて除去
 db.users.aggregate([
  { $project: { clean: { $replaceAll: { input: '$phone', find: '-', replacement: '' } } } }
])

出力:

{ "_id": 1, "clean": "13800138000" }
{ "_id": 2, "clean": "13900139000" }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q$replaceOne と何が違いますか?
A$replaceOne は最初の 1 件だけを置き換えます。$replaceAll は出現箇所をすべて置き換えます。
Q正規表現でも使えますか?
Aいいえ — 正規表現には $regexReplace を使います。
Q置換後の文字列は空にできますか?
Aはい — find の出現箇所をすべて削除することになります。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%