$indexOfArray (配列内の要素の位置を検索)

最終更新:2026-10-09

$indexOfArray (配列内の要素の位置を検索)

$indexOfArray は、配列内で最初に現れる値のインデックスを返します。見つからない場合は -1 を返します。タグが存在するかのチェックや、$arrayElemAt で読み取る要素の位置特定などに使われます。オプションの引数で検索範囲(開始・終了インデックス)を制限できます。文字列を対象とする $indexOfBytes / $indexOfCP の配列版に相当します。マッチングは厳密一致のため、オブジェクトは全体として一致する必要があります。

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

📝 構文

{ $indexOfArray: [ <array>, <searchValue>, <start>, <end> ] }

⚙️ パラメータ

配列検索する配列。
検索値検索する値。
開始インデックス任意の開始インデックス(含む)。既定は 0。
終了インデックス任意の終了インデックス(含まない)。

戻り値:最初にマッチした位置のインデックス。見つからない場合は -1

▶ 例

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

// $indexOfArray: 'urgent' タグの位置を特定
db.tasks.aggregate([
  { $project: {
      urgentPos: { $indexOfArray: ['$tags', 'urgent'] }
  } }
])

出力:

{ '_id': 1, 'urgentPos': 2 }
{ '_id': 2, 'urgentPos': -1 }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q要素が見つからないときは何を返しますか?
A-1 を返します。$ne で存在チェックができます。
Q検索範囲を制限できますか?
Aはい — 3 番目と 4 番目の引数が開始(含む)と終了(含まない)のインデックスです。
Qオブジェクト要素を検索するには?
Aオブジェクト全体を渡して厳密一致させます。例: { $indexOfArray: ['$arr', { a: 1 }] }。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%