MongoDB で指定された配列を検索する
Shihab Sikder
2022年8月18日
$in
演算子は、指定した配列内を検索します。たとえば、配列を指定して、MongoDB コレクション内の 1つ以上の一致する要素を検索する場合は、$in
を使用できます。
MongoDB で $in
演算子を使用して指定された配列を検索する
$in
演算子は、フィールドの値が指定された配列の任意の値と等しいドキュメントを検索します。次のプロトタイプを使用して、$in
式を指定します。
{ field: { $in: [<value1>, <value2>, ... <valueN> ] } }
たとえば、次のコレクションがあるとします。
{
_id:1,
name: "John",
age: 30
},
{
_id:2,
name: "Alex",
age: 23
},
{
_id:3,
name: "Murphy",
age: 25
},
{
_id:4,
name: "Alice",
age: 28
},
ここで、_id = 2,3,4
のドキュメントを表示します。したがって、コマンドは次のようになります。
db.collection.find( {_id: { $in: [2, 3, 4] } } );
または、パラメータとして配列を送信することもできます。アプリやウェブサイトを開発しているとき、それは役に立ちます。
let list=[2, 3, 4]
db.collection.find( { _id:{ $in: list} } )
JavaScript の promise
を使用している間、このアプローチは便利です。
エラーを回避するには、ObjectId
に注意する必要があります。_id
はデフォルトで MongoDB によって提供され、_id
のタイプは ObjectId
です。
したがって、$in
のパラメータで配列を渡すときに、次のように各整数 id
を ObjectId
に変換することをお勧めします。
{ "_id" : { $in : [ObjectId('2'),ObjectId('3'),ObjectId('4')] } }
パラメータを介して _id
の正確なデータ型を提供するため、このアプローチはより正確です。 $in
は、updateMany
、updateOne
、deleteOne
、deleteMany
操作でも使用できます。
$in
演算子の詳細については、公式ページこちらにアクセスしてください。
著者: Shihab Sikder