可以使用mongodb嵌入式文档将相关字段组合在一起吗?
示例:一个文档具有字段creator_id
和creator_language
,是否可以用包含字段creator
和id
的嵌入式文档language
替换它们不会影响性能吗?
除了嵌入式文档没有集合并且绑定到父文档之外,我什么都找不到关于嵌入式文档存储方式的任何信息
答案 0 :(得分:1)
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
}
}