[파이썬] mongoengine 커스텀 쿼리셋 메서드 만들기

MongoEngine은 Python을 위한 MongoDB ODM(Object Document Mapper)입니다. 이를 통해 MongoDB와 상호작용하고 데이터를 다룰 수 있습니다. 이번 글에서는 MongoEngine의 커스텀 쿼리셋 메서드를 만드는 방법에 대해 알아보겠습니다.

커스텀 쿼리셋 메서드는 기본적으로 MongoEngine의 QuerySet 클래스에 정의됩니다. 이를 사용하면 데이터를 효과적으로 조회하고 조작할 수 있습니다. 또한, 커스텀 메서드를 사용하면 코드의 재사용성을 높일 수 있습니다.

아래는 MongoEngine에서 커스텀 쿼리셋 메서드를 만드는 단계를 보여주는 예시입니다:

from mongoengine import *

connect('mydatabase')

# 커스텀 쿼리셋 클래스 정의
class PersonQuerySet(QuerySet):
    def get_adults(self):
        return self.filter(age__gte=18)

# 문서 클래스 정의
class Person(Document):
    name = StringField()
    age = IntField()

    # 커스텀 쿼리셋 메서드 호출을 위한 매니저 설정
    meta = {'queryset_class': PersonQuerySet}

# 사용 예시
adults = Person.objects.get_adults()
for person in adults:
    print(person.name)

위의 예시에서는 PersonQuerySet 클래스를 정의하여 get_adults라는 커스텀 쿼리셋 메서드를 구현하였습니다. 이 메서드는 18세 이상인 사람들을 조회하는 역할을 합니다.

또한, Person 문서 클래스에서 meta 속성을 통해 queryset_class를 설정하여 커스텀 쿼리셋 메서드를 사용할 수 있도록 합니다.

이제 Person.objects.get_adults()를 통해 18세 이상인 사람들을 조회할 수 있습니다.

이와 같이 MongoEngine을 사용하여 커스텀 쿼리셋 메서드를 만들어 데이터를 다룰 수 있습니다. 이렇게 함으로써 코드의 가독성과 재사용성을 높히고, MongoDB와 상호작용하는 일을 더욱 편리하게 할 수 있습니다.