1

我有一种特定类型的 JSON,我需要将其编码到我的 Django 问题的模型中。问题是我在其中嵌套了文档,或者我应该说对象的对象,我不知道如何在 Pymodm 或 Mongoengine 中设计模型。

这是我正在处理的 JSON 模式。

{
    "something": "something",
    "safasf": 5,
    "key": {
        "value1": ["dsd", "dd"],
        "value2": {
            "blah1": "blahvalue1",
            "blah2": "blahvalue2"
        }
    }
}

我已经查看了这两个 ODM 的文档和 API 参考。我找不到任何有用的东西。充其量他们有fields.EmbeddedDocumentListField存储文档/对象列表。

4

1 回答 1

1

您的示例 json 毫无意义,但这是您如何使用 mongoengine 对其进行建模的示例

from mongoengine import *

class MyNestedDoc(EmbeddedDocument):
    value1 = ListField(StringField())
    value2 = DictField(StringField())

class MyDocument(Document):
    something = StringField()
    safasf = IntField()
    key = EmbeddedDocumentField(MyNestedDoc)


nested_doc = MyNestedDoc(
    value1=["dsd", "dd"],
    value2={
        "blah1": "blahvalue1",
        "blah2": "blahvalue2"
    }
)
doc = MyDocument(something="something", safasf=5, key=nested_doc)
doc.save()

这将在 Mongo 中保存一个具有以下形状的对象

{'_id': ObjectId('5d2d832c96d2914c2a32c1b3'),
 'key': {
  'value1': ['dsd', 'dd'],
  'value2': {
    'blah1': 'blahvalue1',
    'blah2': 'blahvalue2'
    }
  },
 'safasf': 5,
 'something': 'something'
}
于 2019-07-16T08:00:12.893 回答