2

这里是情景。我有一个名为 Permission 的模型。让我们假设它看起来像这样:

class Permission(Document):
    meta = {'collection': 'permission'}
    permission = DictField()
    owner = ReferenceField('user')

这继承自 mongoengine 的 Document 类。因此,当我保存它的一个实例时,会在数据库中自动创建一个名为权限的集合。

我希望能够动态更改集合名称。例如,如果我有一个联系人模型并且想要保存联系人模型的权限,我不希望它进入权限集合,而是保存在一个名为contact_permission 的单独集合中。

我已经为 mongoengine 使用了 feature/dynamic_collection_naming 分支。我无法弄清楚如何让它工作。我试过这个:

p = Permission()
...
p.meta['collection'] = 'contact_permission'
p.save()

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

4

1 回答 1

1

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

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

于 2011-10-18T12:36:04.603 回答