2012-05-21 2 views
0

Ming ODM에서 매핑을 설정하는 중입니다. 문제는 사용자 정의 유형을 필드에 매핑하는 방법과 해당 사용자 정의 유형을 전달하는 방법입니다. .queryMing ODM에 사용자 지정 형식을 매핑하는 방법?

기본적으로 고객 ID를 나타내는 객체가 있습니다. FieldProperty가 기본 유형 중 하나가 아닌이 유형의 객체를 가져오고 반환하도록합니다. 이 타입은 int로 변환 할 수 있으며 Mongo에서는 int로 저장되지만, 데이터 모델과 다른 파이썬 코드에서는이 도메인 특정 타입으로 전달하려고합니다.

CustomerID 유형의 인스턴스를 .query에 kwd 인수로 직접 전달할 때 PyMongo는 유형을 이해하지 못한다고 불평합니다.

답변

2

저는 최근에 비슷한 것을하고 싶었습니다. Ming을 통해 MongoDB에 IP 주소를 바이너리 데이터로 저장. (이유는 효율적인 CIDR 쿼리를 허용하기 위해서였습니다.) @kbluck를 돕기에는 너무 늦었을 수도 있지만, 같은 것을 시도하는 중에이 문제를 우연히 만난 다른 사람들을 위해 내 솔루션을 제공하고 있습니다.

나는이 작품을 만든하지만 내 IP 주소 클래스를 bson.Binary의 서브 클래스 (I 파이썬이 사용하고, 파이썬 3, 내장 binary 유형의 서브 클래스가 대신 사용된다)를 만드는 트릭.

CustomerID 클래스는 int의 하위 클래스가됩니다. CustomerID 클래스에는 int (데이터베이스에서로드 할 때), CustomerID 인스턴스 (복사 생성자) 및 응용 프로그램에서 사용해야하는 생성자 (예 : IP 주소 표현 문자열)를 허용하는 다형성 생성자가 있어야합니다.

이것은 사용자가 요구 한 것이 아닙니다. FieldProperty는 int 또는 형식을 취해 유형으로 변환하는 방법을 알고있는 int 특수 문자를 반환합니다. https://gist.github.com/3854792

:

나는 요지로 (IP 주소) 전체 예를 업로드 한

관련 문제