MongoDB의 지정된 배열에서 검색

Shihab Sikder 2022년8월18일
MongoDB의 지정된 배열에서 검색

$in 연산자는 제공한 배열 내에서 검색합니다. 예를 들어 배열을 제공하고 MongoDB 컬렉션에서 하나 이상의 일치하는 요소를 검색하려는 경우 $in을 사용할 수 있습니다.

$in 연산자를 사용하여 MongoDB의 지정된 배열에서 검색

$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의 정확한 데이터 유형을 제공하기 때문에 더 정확합니다. $inupdateMany, updateOne, deleteOne, deleteMany 작업에서도 사용할 수 있습니다.

$in 연산자에 대해 자세히 알아보려면 공식 페이지 여기를 방문하세요.

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