- id 타입으로인해 문제가 발생할수 있다. 이 점을 주의하자
// 파이썬에서는 아래 함수를 선언해서 써줬고
class PydanticObjectId(ObjectId):
"""MongoDB ObjectId 필드를 위한 Pydantic 타입"""
@classmethod
def __get_validators__(cls):
yield cls.validate
@classmethod
def validate(cls, value):
if not ObjectId.is_valid(value):
raise ValueError(f"Invalid ObjectId: {value}")
return ObjectId(value)
@classmethod
def __get_pydantic_core_schema__(
cls, _source_type: Any, _handler: GetCoreSchemaHandler
) -> core_schema.CoreSchema:
"""Pydantic 2.x에 맞는 스키마 생성 메서드"""
return core_schema.union_schema([
core_schema.is_instance_schema(ObjectId),
core_schema.chain_schema([
core_schema.string_schema(),
core_schema.no_info_plain_validator_function(cls.validate)
])
], serialization=core_schema.to_string_serializer())
def __str__(self):
return str(super().__str__())
// 파이썬 에서는 스키마에 이걸 추가 해 줬다.
model_config = ConfigDict(
json_encoders={ObjectId: str} # 🔥🔥🔥 ObjectId를 문자열로 변환 🔥🔥🔥
)
- 맥에서 설치
brew tap mongodb/brew
brew install mongodb-community
brew services start mongodb-community
// 실행(터미널에서)
mongo
// 실행시 command not found:mongo 발생시
brew install mongodb-community-shell
// 사용자 계정 추가해서 인증된 사용자만 접속할수 있게 하려면
use admin
db.createUser({user : "root", pwd : "1234", roles : [ "root" ]})
brew services stop mongodb-community
vi /usr/local/etc/mongod.conf
// 들어가서
security:
authorization: enabled // 로 변경
// 그 후 다시 실행
brew services restart mongodb-community
// 종료 할때는
brew services stop mongodb-community
// 로그인 할때는
mongo admin -u root -p 1234