定義
$in指定した値が配列内にあるかどうかをブール値で返します。
注意
このドキュメントでは、
$in集計演算子について説明します。$inクエリ演算子については、$in(クエリ述語演算子)をご覧ください。{ $in: [ <expression>, <array expression> ] } $inクエリ演算子とは異なり、集計$in演算子は正規表現による一致をサポートしていません。例結果{ $in: [ 2, [ 1, 2, 3 ] ] }true{ $in: [ "abc", [ "xyz", "abc" ] ] }true{ $in: [ "xy", [ "xyz", "abc" ] ] }false{ $in: [ [ "a" ], [ "a" ] ] }false{ $in: [ [ "a" ], [ [ "a" ] ] ] }true{ $in: [ /^a/, [ "a" ] ] }false{ $in: [ /^a/, [ /^a/ ] ] }true
動作
$in $in 式に 2 つの引数が厳密に指定されていない場合、または 2 番目の引数が配列に変換されない場合は、エラーを出して失敗します。
例
以下の例では、sample_mflix サンプル データセットの movies コレクションを使用します。このデータセットを配置にロードする方法について詳しくは、「サンプル データセットのロード」を参照してください。
この集計操作では、各映画の genres 配列を調べて、string "Drama" の有無を判断します。
db.movies.aggregate( [ { $match: { runtime: { $gt: 1000 } } }, { $project: { _id: 0, title: 1, hasDrama: { $in: [ "Drama", "$genres" ] } } } ] )
[ { title: 'Centennial', hasDrama: true }, { title: 'Baseball', hasDrama: false } ]