这是senario。我有一个名为Permission的模型。让我们假设它看起来像这样:
class Permission(Document):
meta = {'collection': 'permission'}
permission = DictField()
owner = ReferenceField('user')
这是从mongoengine的Document类继承的。因此,当我保存一个实例时,将在数据库中自动创建一个名为权限的集合。
我希望能够动态更改集合名称。例如,如果我有一个Contacts模型并想保存Contact模型的权限,则我不希望它进入权限集合,而是保存在一个名为contact_permission的单独集合中。
我已经为mongoengine使用了feature / dynamic_collection_naming分支。我不知道如何使它工作。我已经试过了:
p = Permission()
...
p.meta['collection'] = 'contact_permission'
p.save()
但这是行不通的。你能帮我一下吗。
最佳答案
这不是动态集合命名的预期API。快速浏览您提到的分支中的提交将显示此提交,并显示如何使用它:
https://github.com/hmarr/mongoengine/commit/c62b6321adaba6c3eb54ce2dc2c1bd3069568399
关于python - 在mongoengine中获取动态集合名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7805763/