Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB에서 특정 필드 조건으로 문서 검색하는 방법

MongoDB에서 특정 필드로 검색하기

MongoDB에서 여러 필드에 걸쳐 조건을 지정해 문서를 검색하려면 $or 연산자를 사용할 수 있습니다. $or 연산자는 배열 안의 조건 중 하나라도 만족하는 모든 문서를 반환합니다.

먼저 예제로 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.

> db.demo371.insertOne({"Name":"David","CountryName":"US"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e57f6982ae06a1609a00af2")
}
> db.demo371.insertOne({"Name":"John","CountryName":"UK"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e57f69e2ae06a1609a00af3")
}
> db.demo371.insertOne({"Name":"Bob","CountryName":"AUS"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e57f6a42ae06a1609a00af4")
}
> db.demo371.insertOne({"Name":"Mike","CountryName":"US"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e57f6ba2ae06a1609a00af5")
}

컬렉션의 전체 문서 조회

find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 확인할 수 있습니다.

> db.demo371.find();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

{ "_id" : ObjectId("5e57f6982ae06a1609a00af2"), "Name" : "David", "CountryName" : "US" }
{ "_id" : ObjectId("5e57f69e2ae06a1609a00af3"), "Name" : "John", "CountryName" : "UK" }
{ "_id" : ObjectId("5e57f6a42ae06a1609a00af4"), "Name" : "Bob", "CountryName" : "AUS" }
{ "_id" : ObjectId("5e57f6ba2ae06a1609a00af5"), "Name" : "Mike", "CountryName" : "US" }

$or 연산자를 활용한 특정 필드 검색

이제 서로 다른 필드에 대한 조건을 동시에 적용하여 문서를 검색해 보겠습니다. 아래 쿼리는 Name이 'David'이거나 CountryName이 'UK'인 문서를 찾습니다.

> db.demo371.find({ $or: [ { Name: "David" }, { CountryName: "UK"} ] } )

실행 결과, 두 조건 중 하나를 만족하는 문서만 반환됩니다.

{ "_id" : ObjectId("5e57f6982ae06a1609a00af2"), "Name" : "David", "CountryName" : "US" }
{ "_id" : ObjectId("5e57f69e2ae06a1609a00af3"), "Name" : "John", "CountryName" : "UK" }

결과를 살펴보면 첫 번째 문서는 Name 조건('David')을, 두 번째 문서는 CountryName 조건('UK')을 각각 만족하기 때문에 두 문서 모두 결과에 포함되었습니다. 이처럼 $or 연산자를 사용하면 여러 필드에 대한 OR 조건 검색을 손쉽게 구현할 수 있습니다.