[파이썬] 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
클래스는 다음과 같은 문서 필드를 가지고 있습니다:
name
: 문자열 필드로, 필수 입력 항목입니다.email
: 이메일 필드로, 필수 입력 항목입니다.age
: 정수 필드로, 기본값은 0입니다.is_active
: 부울 필드로, 기본값은True
입니다.created_at
: 날짜 및 시간 필드로, 값을 지정하지 않으면 현재 시간으로 설정됩니다.
또한, 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 데이터를 관리하는 데 필요한 작업을 간소화하고, 유연하게 처리할 수 있습니다.