Mongodb 嵌入文档作为相关字段的容器

Mongodb embedded document as a container for related fields

可以使用mongodb嵌入文档将相关字段组合在一起吗?

示例:文档具有字段 creator_idcreator_language,是否可以将它们替换为包含字段 id 和 [=15] 的嵌入文档 creator =] 没有性能影响?

我没能找到关于嵌入文档如何存储的任何信息,除了它没有集合并且与父文档相关联这一事实

EmbeddedDocument 只是文档中的嵌套对象。这在 mongodb 中是非常标准的,因此切换到它非常好。如果您开始拥有成百上千个嵌套结构,您可能会观察到 mongoengine 对性能的影响,但看起来这不是您的计划。

存储空间见下文

class DateOfBirth(EmbeddedDocument):
    year = IntField()
    month = IntField()
    day = IntField()

class Person(Document):
    name = StringField()
    dob = EmbeddedDocumentField(DateOfBirth)

Person(name='John', dob=DateOfBirth(day=1, month=12, year=2000)).save()

将存储这样一个对象:

# print(Person.objects.as_pymongo().first())
{
  '_id': ObjectId('5d2decf7d8eefe0e58da364d'),
  'name': 'John',
  'dob': {
    'year': 2000,
    'month': 12,
    'day': 1
  }
}