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

MongoDB에서 $or 연산자로 조건에 맞는 값 조회하고 pretty()로 결과 포맷팅하는 방법

MongoDB에서 여러 조건 중 하나라도 일치하는 문서를 조회하려면 $or 연산자를 사용하면 됩니다. 또한 쿼리 결과를 보기 좋게 정렬된 형태로 출력하고 싶다면 pretty() 메서드를 함께 활용할 수 있습니다.

이번 글에서는 예제 컬렉션을 만들고, $or 연산자로 값을 조회한 뒤 결과를 가독성 있게 포맷팅하는 방법을 단계별로 살펴보겠습니다.

1. 샘플 데이터가 담긴 컬렉션 만들기

먼저 insertOne() 메서드를 사용해 문서들이 들어 있는 컬렉션을 생성합니다.

> db.demo304.insertOne({"StudentName":"Chris","StudentAge":23});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e4ea3ccf8647eb59e562034")
}
> db.demo304.insertOne({"StudentName":"David","StudentAge":22});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e4ea3d7f8647eb59e562035")
}
> db.demo304.insertOne({"StudentName":"Mike","StudentAge":24});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e4ea3e2f8647eb59e562036")
}
> db.demo304.insertOne({"StudentName":"Carol","StudentAge":22});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e4ea3eef8647eb59e562037")
}

2. find() 메서드로 전체 문서 확인하기

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

> db.demo304.find();

위 쿼리를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

{ "_id" : ObjectId("5e4ea3ccf8647eb59e562034"), "StudentName" : "Chris", "StudentAge" : 23 }
{ "_id" : ObjectId("5e4ea3d7f8647eb59e562035"), "StudentName" : "David", "StudentAge" : 22 }
{ "_id" : ObjectId("5e4ea3e2f8647eb59e562036"), "StudentName" : "Mike", "StudentAge" : 24 }
{ "_id" : ObjectId("5e4ea3eef8647eb59e562037"), "StudentName" : "Carol", "StudentAge" : 22 }

3. $or 연산자로 조건 조회 후 pretty()로 포맷팅하기

이제 $or 연산자를 사용해 학생 이름이 'David'이거나 나이가 22세인 문서를 조회해 보겠습니다. 이때 pretty() 메서드를 붙이면 결과가 줄바꿈과 들여쓰기가 적용된 읽기 쉬운 형태로 출력됩니다.

> db.demo304.find({ $or: [{ "StudentName": "David" }, { "StudentAge":22} ] } ).pretty();

실행 결과는 다음과 같습니다. 이름이 'David'인 문서와 나이가 22세인 두 개의 문서가 모두 조회된 것을 확인할 수 있습니다.

{
   "_id" : ObjectId("5e4ea3d7f8647eb59e562035"),
   "StudentName" : "David",
   "StudentAge" : 22
}
{
   "_id" : ObjectId("5e4ea3eef8647eb59e562037"),
   "StudentName" : "Carol",
   "StudentAge" : 22
}

정리

$or 연산자는 배열 안에 여러 조건을 나열하며, 그중 하나라도 참이면 해당 문서를 반환합니다. 조회 결과에 pretty()를 사용하면 콘솔에서 결과를 한눈에 파악하기 쉬워지므로, 개발 및 디버깅 과정에서 매우 유용하게 활용할 수 있습니다.