这是Senario。我有一个名为Permission的模型。让我们假设它看起来像这样:
class Permission(Document):
meta = {'collection': 'permission'}
permission = DictField()
owner = ReferenceField('user')
这继承自mongoengine的Document类。因此,当我保存此实例时,会自动在数据库中创建名为permission的集合。
我希望能够动态更改集合名称。例如,如果我有一个Contacts模型并且想要保存Contact模型的权限,我不希望它进入权限集合,而是保存在一个名为contact_permission的单独集合中。
我使用了mongoengine的feature / dynamic_collection_naming分支。我无法弄清楚如何使这个工作。我试过这个:
p = Permission()
...
p.meta['collection'] = 'contact_permission'
p.save()
但这不起作用。你能帮帮我吗?
答案 0 :(得分:1)
这不是动态集合命名的预期API。快速搜索您提到的分支中的提交会显示此提交,其中显示了如何使用它:
https://github.com/hmarr/mongoengine/commit/c62b6321adaba6c3eb54ce2dc2c1bd3069568399