웹 프로젝트를 위해 MongoEngine에서 MongoBD 데이터베이스를 모델링하고 있습니다. 나중에 효율적으로 쿼리 할 수 있도록 약간 특이한 방식으로 데이터를 저장하려고합니다. MongoDB의에서MongoEngine : DictField에 EmbeddedDocument 저장
우리의 데이터는 다음과 같은 :
// "outer"
{
"outer_data": "directors",
"embed": {
"some_md5_key": { "name": "P.T. Anderson" },
"another_md5_key": { "name": "T. Malick" },
...
}
}
나의 첫번째 본능 MongoEngine이처럼 모델이었다 즉
class Inner(EmbeddedDocument):
name = StringField()
class Outer(Document):
outer_data = StringField()
embed = DictField(EmbeddedDocument(Inner)) # this isn't allowed but you get the point
을, 제가 기본적으로 원하는 것은 동일 각각의 임베디드 문서에 대한 동적 키를 가지고 ListField에 DictField에 임베디드 문서를 저장하는 것.
은 참조를 위해의 ListField으로을 허용 예 있음 :
class Inner(EmbeddedDocument):
inner_id = StringField(unique=True) # this replaces the dict keys
name = StringField()
class Outer(Document):
outer_data = StringField()
embed = ListField(EmbeddedDocument(Inner))
난 여전히 "DICT의 (a DictField + EmbeddedDocument를 사용하는 동안 MongoEngine 객체가 중첩 된"내부 "문서를 함께 반환해야하는 것을 선호
값"). MongoEngine에서 이것을 어떻게 모델화 할 수 있습니까? 그것은 가능합니까 아니면 모든 데이터를 일반 DictField에 순진하게 배치해야합니까?
나는이 접근법을 시도했지만 저장하면서 "원본 SON 개체는 'dict'유형이어야합니다. 이 문제에 대한 해결책은 매우 유용 할 것입니다. 감사 – ptwo