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

MongoDB에서 여러 조건 구현하기: $or 연산자 완벽 가이드

MongoDB에서 여러 조건 구현하기

데이터베이스 작업을 하다 보면 하나의 쿼리에 여러 조건을 적용해야 하는 경우가 자주 발생합니다. MongoDB에서는 $or 연산자를 사용하면 SQL의 WHERE 절에서 OR 조건을 걸듯이 여러 조건을 손쉽게 처리할 수 있습니다. 이 글에서는 실제 예제를 통해 MongoDB에서 여러 조건을 구현하는 방법을 단계별로 살펴보겠습니다.

1단계: 샘플 데이터로 컬렉션 생성

먼저 insertOne() 메서드를 사용해 문서가 포함된 컬렉션을 생성합니다.

> db.multipleConditionDemo.insertOne({"_id":1,"Name":"John"});
{ "acknowledged" : true, "insertedId" : 1 }
> db.multipleConditionDemo.insertOne({"_id":2,"Name":"Carol"});
{ "acknowledged" : true, "insertedId" : 2 }
> db.multipleConditionDemo.insertOne({"_id":3,"Name":"Sam"});
{ "acknowledged" : true, "insertedId" : 3 }
> db.multipleConditionDemo.insertOne({"_id":4,"Name":"David"});
{ "acknowledged" : true, "insertedId" : 4 }

2단계: 전체 문서 조회하기

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

> db.multipleConditionDemo.find().pretty();

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

{ "_id" : 1, "Name" : "John" }
{ "_id" : 2, "Name" : "Carol" }
{ "_id" : 3, "Name" : "Sam" }
{ "_id" : 4, "Name" : "David" }

3단계: $or 연산자로 여러 조건 적용하기

다음은 $or 연산자를 활용해 _id가 2 또는 3인 문서를 삭제하는 쿼리입니다. $or 연산자는 배열 안에 여러 조건 객체를 나열하는 방식으로 작성하며, 관계형 데이터베이스의 WHERE 절에서 OR 조건을 사용하는 것과 동일한 효과를 냅니다.

> db.multipleConditionDemo.remove({ $or: [ { _id: 2 }, { _id: 3 } ] });
WriteResult({ "nRemoved" : 2 })

실행 결과 nRemoved 값이 2로 표시되며, 조건에 해당하는 두 개의 문서가 성공적으로 삭제되었음을 알 수 있습니다.

4단계: 삭제 결과 확인하기

쿼리 실행 후 컬렉션을 다시 한번 조회해 보겠습니다.

> db.multipleConditionDemo.find().pretty();

출력 결과를 보면 _id가 2와 3인 문서가 사라지고, 나머지 두 개의 문서만 남아 있는 것을 확인할 수 있습니다.

{ "_id" : 1, "Name" : "John" }
{ "_id" : 4, "Name" : "David" }

마무리 정리

이처럼 MongoDB의 $or 연산자를 사용하면 복잡한 조건도 간결하게 표현할 수 있습니다. 참고로 최신 MongoDB 버전에서는 remove() 메서드보다 deleteMany() 또는 deleteOne() 메서드 사용이 권장되므로, 실무 환경에서는 용도에 맞는 메서드를 선택하는 것이 좋습니다. $and, $in, $gt 등 다른 논리·비교 연산자와 함께 활용하면 더욱 유연한 쿼리를 작성할 수 있습니다.