MongoDB에서 특정 조건에 맞는 레코드를 조회하려면 find() 메서드에 조건을 지정하면 됩니다. 이번 글에서는 실제 예제를 통해 조건 기반 검색 방법을 단계별로 살펴보겠습니다.
1. 컬렉션 생성 및 문서 삽입
먼저 insertOne() 메서드를 사용해 컬렉션에 문서를 생성합니다.
> db.demo708.insertOne({"Name":"John",Marks:54});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea702e4d346dcb074dc6f33")
}
> db.demo708.insertOne({"Name":"Chris",Marks:35});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea702e6d346dcb074dc6f34")
}
> db.demo708.insertOne({"Name":"David",Marks:45});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea702ebd346dcb074dc6f35")
}
> db.demo708.insertOne({"Name":"Bob",Marks:40});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea702fad346dcb074dc6f36")
}2. 전체 문서 확인하기
find() 메서드를 사용하면 컬렉션의 모든 문서를 조회할 수 있습니다.
> db.demo708.find();
위 쿼리의 실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5ea702e4d346dcb074dc6f33"), "Name" : "John", "Marks" : 54 }
{ "_id" : ObjectId("5ea702e6d346dcb074dc6f34"), "Name" : "Chris", "Marks" : 35 }
{ "_id" : ObjectId("5ea702ebd346dcb074dc6f35"), "Name" : "David", "Marks" : 45 }
{ "_id" : ObjectId("5ea702fad346dcb074dc6f36"), "Name" : "Bob", "Marks" : 40 }3. 조건에 따라 레코드 조회하기
이제 조건을 적용해 원하는 레코드만 조회해 보겠습니다. 아래 쿼리는 $gt(greater than, 초과) 연산자를 사용하여 Marks 값이 40보다 큰 문서만 찾습니다.
> db.demo708.find({Marks:{$gt:40}});실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5ea702e4d346dcb074dc6f33"), "Name" : "John", "Marks" : 54 }
{ "_id" : ObjectId("5ea702ebd346dcb074dc6f35"), "Name" : "David", "Marks" : 45 }정리
MongoDB에서 조건 기반 검색은 find() 메서드 안에 조건 객체를 전달하는 것으로 간단히 구현할 수 있습니다. 위 예제처럼 $gt 외에도 $lt(미만), $gte(이상), $lte(이하), $eq(같음) 등 다양한 비교 연산자를 활용하면 더욱 정교한 데이터 조회가 가능합니다.