MongoEngine은 Python에서 MongoDB와 상호작용하기 위한 객체 문서 매핑 라이브러리입니다. 이 라이브러리를 사용하면 Python 객체를 MongoDB 문서로 매핑하고, 데이터를 쉽게 저장, 수정, 검색할 수 있습니다. 이번 블로그에서는 MongoEngine을 사용하여 MongoDB에서 필터링 작업을 수행하는 방법을 알아보겠습니다.
필터링 기본 개념
MongoEngine을 사용하여 MongoDB에서 필터링 작업을 수행하려면 QuerySet
객체를 사용해야 합니다. QuerySet
은 MongoDB 쿼리의 일부를 나타내며, 조건에 부합하는 데이터를 검색하기 위해 사용됩니다. QuerySet
은 여러 메서드를 통해 필터링, 정렬, 제한 등의 작업을 수행할 수 있습니다.
필터링 작업 예제
다음 예제에서는 Person
모델을 사용하여 필터링 작업을 수행하는 방법을 보여줍니다. Person
모델은 MongoDB 컬렉션의 문서를 나타내며, name
, age
, city
필드로 구성됩니다.
from mongoengine import Document, StringField, IntField
class Person(Document):
name = StringField(max_length=50)
age = IntField()
city = StringField(max_length=50)
모든 데이터 검색
QuerySet
객체의 all()
메서드를 사용하여 모든 데이터를 검색할 수 있습니다.
people = Person.objects.all()
for person in people:
print(person.name, person.age, person.city)
특정 조건에 부합하는 데이터 검색
QuerySet
객체의 filter()
메서드를 사용하여 특정 조건에 부합하는 데이터를 검색할 수 있습니다. 다음 예제는 age
필드가 30 이상인 데이터를 검색합니다.
people = Person.objects.filter(age__gte=30)
for person in people:
print(person.name, person.age, person.city)
정렬된 데이터 검색
QuerySet
객체의 order_by()
메서드를 사용하여 데이터를 정렬할 수 있습니다. 다음 예제는 age
필드를 기준으로 오름차순으로 데이터를 정렬합니다.
people = Person.objects.order_by('age')
for person in people:
print(person.name, person.age, person.city)
제한된 개수의 데이터 검색
QuerySet
객체의 limit()
메서드를 사용하여 제한된 개수의 데이터만 검색할 수 있습니다. 다음 예제는 age
필드가 30 초과인 데이터 중 처음 5개의 데이터를 검색합니다.
people = Person.objects.filter(age__gt=30).limit(5)
for person in people:
print(person.name, person.age, person.city)
결론
MongoEngine을 사용하여 MongoDB에서 필터링 작업을 수행하는 것은 간단하고 효율적입니다. QuerySet
객체의 다양한 메서드를 사용하여 필터링, 정렬, 제한 등의 작업을 수행할 수 있습니다. 이번 포스트에서는 필터링 작업의 기본적인 개념과 예제를 알아보았습니다. 추가적으로 MongoDB 쿼리 문법과 다양한 옵션에 대해 더 알아보시길 권장합니다.