$indexOfCP (コードポイント単位の部分文字列位置)

最終更新:2026-10-09

$indexOfCP (コードポイント単位の部分文字列位置)

$indexOfCP は部分文字列が最初に現れる位置をコードポイント(文字数)単位で返します。見つからなければ -1 です。文字単位で数えるため人間の感覚と一致し、中国語や絵文字でも安全で、テキスト処理の推奨選択肢です。任意の start と end で検索範囲を制限できますが、これらもコードポイント単位です。$substrCP や $strLenCP と組み合わせて切り出しに使えます。引数のいずれかが null なら結果は null です。

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

📝 構文

{ $indexOfCP: [ <string-expression>, <substring>, <start>, <end> ] }

⚙️ パラメータ

文字列必須。元の文字列。
部分文字列必須。検索する部分文字列。
開始/終了任意の検索範囲(コードポイント単位)。

戻り値:コードポイントインデックス(0 始まり)。見つからない場合は -1、いずれかの引数が null の場合は null。

▶ 例

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

// $indexOfCP: メールアドレス内の @ を検索
 db.users.aggregate([
  { $project: { at: { $indexOfCP: [ '$email', '@' ] } } }
])

出力:

{ "_id": 1, "at": 6 }
{ "_id": 2, "at": -1 }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q見つからない場合は?
A-1 です。
Q$indexOfBytes と同じですか?
A純粋な ASCII では同じです。中国語では異なります — $indexOfCP は文字位置を返します。
Q空の部分文字列の場合は?
A多くの言語と同じく開始インデックス(既定 0)を返します。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%