MongoEngine返回空lis

2024-09-26 22:50:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为suvaider的数据库。它包含两个收集关系和评论。我通过从json文件导入来填充这两个文件。我为这两个系列创建了模型。但是在尝试使用这些模型来获取mongoengine数据时,它返回空数组。我是个初学者,我第一次用flask来使用mongodb。提前谢谢!!!在

# This is models.py 
    from flask import url_for
    from suvaiderBackend import db

    class Hotels(db.EmbeddedDocument):
        property_id = db.StringField(max_length=255,required=True)
        name = db.StringField(max_length=255,required=True)

    class Relation(db.Document):
        parent = db.EmbeddedDocumentField('Hotels')
        units = db.ListField(db.EmbeddedDocumentField('Hotels'))

    class Reviews(db.Document):
        property_id = db.StringField(max_length=255,required=True)
        rating = db.IntField(default=0)
        review = db.StringField()
        sentiment = db.StringField(max_length=255)
        review_link = db.StringField()

 #This is __init__.py
        from flask import Flask 
        from flask.ext.mongoengine import MongoEngine
        app = Flask(__name__)
        app.config["MONGODB_SETTINGS"] = {'DB': "suvaider"}
        app.config["SECRET_KEY"] = "Keep3H9Secret"

        db = MongoEngine(app)

        if __name__ == '__main__':
             app.run(debug=true)

Tags: 文件namefromimporttrueappflaskdb
2条回答

根据documentation,默认情况下,Mongoengine将您的文档类名转换为小写,并将其用作集合的名称。因此,在您的示例中,它查找名为:relation和reviews的集合。由于现有的数据库具有不同的集合(注意拼写-第一个字母大写),您应该通过添加

meta = {'collection': 'collectionName'}

你的文件。在

^{pr2}$

基本上,我发现

'allow_inheritance': True

在你的meta强制mongoengine以某种方式返回空列表。所以摆脱它对我有帮助。在

相关问题 更多 >

    热门问题