[파이썬] mongoengine `Document` 정의하기
from mongoengine import Document, fields

class User(Document):
    name = fields.StringField(required=True)
    email = fields.EmailField(required=True)
    age = fields.IntField(default=0)
    is_active = fields.BooleanField(default=True)
    created_at = fields.DateTimeField()

    meta = {
        'collection': 'users',
        'indexes': [
            'email',
            'age'
        ]
    }

위의 코드에서 User 클래스는 Document 클래스를 상속하여 정의됩니다. 이는 MongoEngine에서 MongoDB 문서를 정의하기 위한 기본 클래스입니다. User 클래스는 다음과 같은 문서 필드를 가지고 있습니다:

또한, meta 속성을 통해 문서의 메타 데이터를 정의할 수 있습니다. 위의 예시에서는 collection 속성을 사용하여 MongoDB에서 생성될 컬렉션 이름을 지정하고, indexes 속성으로 인덱스를 생성하고자 하는 필드를 지정했습니다.

이제 위의 User 클래스를 사용하여 MongoDB의 users 컬렉션과 상호 작용할 수 있습니다. 다음은 User 문서를 생성하고 저장하는 예시입니다:

user = User(name='John Smith', email='john@example.com', age=25)
user.save()

위의 코드에서 User 클래스의 인스턴스를 생성하고, save() 메서드를 호출하여 MongoDB에 저장합니다. 이렇게 생성된 문서는 users 컬렉션에 저장되며, 필요에 따라 갱신, 삭제 등의 작업을 수행할 수 있습니다.

MongoEngine를 사용하여 MongoDB 문서를 정의하면, Python 객체를 사용하여 간편하게 MongoDB와 상호 작용할 수 있습니다. 이를 통해 애플리케이션에서 MongoDB 데이터를 관리하는 데 필요한 작업을 간소화하고, 유연하게 처리할 수 있습니다.