$in (配列内のいずれか)

最終更新:2026-10-09

$in (配列内のいずれか)

$in は、フィールドの値が指定した配列内のいずれかの値と等しいドキュメントを選択します。$or の便利な省略形です。`{ age: { $in: [18, 21, 30] } }` は age が 18、21、30 のいずれかのドキュメントに一致します。複数の $eq や $or よりもインデックスに有利で、配列フィールドには特別な意味論があります。

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

📝 構文

{ <field>: { $in: [ <value1>, <value2>, ... ] } }

▶ 例

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

// $in: age が 18、21、30 のいずれかに一致
db.users.find({ age: { $in: [18, 21, 30] } })

出力:

// age がリスト内のいずれかの値であるドキュメントを返す

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$in と $or ではどちらが速い?
A$in です。単一フィールドならインデックス参照が 1 回で済みますが、$or は複数のインデックス分岐をマージします。$in は正規表現にも対応しています。
Q$in は $eq を複数つなげた $or と同等ですか?
A機能的には同等ですが、$in はより簡潔で、単一のインデックス走査で高いパフォーマンスを発揮します。混在型のマッチには $type や正規表現のオペランドも受け付けます。
Q$in は配列フィールドでどう動きますか?
A配列要素のいずれかが $in リスト内のいずれかの値と等しければ一致します。$elemMatch と $in の組み合わせと同じですが、より簡潔です。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%