MongoDB で指定された配列を検索する

Shihab Sikder 2022年8月18日
MongoDB で指定された配列を検索する

$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 のパラメータで配列を渡すときに、次のように各整数 idObjectId に変換することをお勧めします。

{ "_id" : { $in : [ObjectId('2'),ObjectId('3'),ObjectId('4')] } }

パラメータを介して _id の正確なデータ型を提供するため、このアプローチはより正確です。 $in は、updateManyupdateOnedeleteOnedeleteMany 操作でも使用できます。

$in 演算子の詳細については、公式ページこちらにアクセスしてください。

著者: Shihab Sikder
Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website