web-dev-qa-db-ja.com

MongoEngineでコレクション名を指定する

コンテンツが追加されると、コレクションの名前はデフォルトでクラスの名前に設定されます。コレクション名を指定することは可能ですか、それとも私のアプローチは間違っていますか?私のコレクションのコードを使用すると、デフォルトで「mongo_engine_python」という名前になります。

from mongoengine import *

try:
    connect(
        db='MongoEngine_Test',
        Host="mongodb://localhost:27017/"
    )
    print("Connection successful")
except:
    print("Unable to connnect") 

class MongoEnginePython(Document):
    item_name = StringField(max_length=200, required=True)
    item_price = IntField(default=0)
8
Reez0

ドキュメントを適切に確認しませんでした。ここにあります:

2.3.4。ドキュメントコレクション

Documentから直接継承するDocumentクラスは、データベースに独自のコレクションを持ちます。コレクションの名前は、デフォルトでは小文字に変換されたクラスの名前です(したがって、上記の例では、コレクションはpageと呼ばれます)。コレクションの名前を変更する必要がある場合(たとえば、既存のデータベースでMongoEngineを使用する場合)、ドキュメントにmetaというクラスディクショナリ属性を作成し、コレクションに、ドキュメントクラスで使用するコレクションの名前を設定します。 :

class Page(Document):
    title = StringField(max_length=200, required=True)
    meta = {'collection': 'cmsPage'}
15
Reez0