$substr (部分文字列)

最終更新:2026-10-09

$substr (部分文字列)

$substr は指定した位置から指定した長さの部分文字列を取り出します。MongoDB 3.4 以降、$substr は $substrCP の別名で、位置を Unicode コードポイント(おおよそ文字数)で数えます。中国語や絵文字のようなマルチバイト文字でも安全で、文字が途中で切れることはありません。start は 0 始まりで、負の start は空文字列を、負の length は start 以降のすべてを返します。

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

📝 構文

{ $substr: [ <string-expression>, <start>, <length> ] }

⚙️ パラメータ

文字列必須。元の文字列式。
開始位置必須の整数(0 始まり)。負の場合は空文字列になります。
長さ必須の整数。負の場合は start から末尾までを返します。

戻り値:抽出された部分文字列。いずれかの引数が null の場合は null。

▶ 例

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

// $substr: 電話番号の最初の 3 桁
 db.users.aggregate([
  { $project: { code: { $substr: [ '$phone', 0, 3 ] } } }
])

出力:

{ "_id": 1, "code": "138" }
{ "_id": 2, "code": "139" }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q$substr と $substrCP は同じですか?
A3.4 以降、$substr は $substrCP の別名で、動作は完全に同じです。
Q中国語を切り出して文字化けしませんか?
Aしません — コードポイントで数えるため、中国語でも安全です。
Qstart を負にできますか?
Aはい — 負の start は空文字列を返します。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%