在mongoengine中获取动态集合名称

时间:2011-10-18 10:24:22

标签: python mongoengine

这是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()

但这不起作用。你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

这不是动态集合命名的预期API。快速搜索您提到的分支中的提交会显示此提交,其中显示了如何使用它:

https://github.com/hmarr/mongoengine/commit/c62b6321adaba6c3eb54ce2dc2c1bd3069568399