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 に答える