使用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)

问题答案:

没有正确看文档。这里是:

2.3.4。 文件收集

直接从Document继承的Document类将在数据库中拥有自己的集合。默认情况下,集合的名称是类的名称,转换为小写(因此在上面的示例中,集合称为页面)。如果您需要更改集合的名称(例如,将MongoEngine与现有数据库一起使用),请在您的文档上创建一个名为meta的类字典属性,并将collection设置为您希望文档类使用的集合的名称:

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