【问题标题】:Flask Mongoengine Text Search Cannot resolve FieldFlask Mongoengine 文本搜索无法解析字段
【发布时间】:2015-09-06 11:32:28
【问题描述】:

一直在努力获取在 MongoEngine 中创建的文本索引。我的所有模块似乎都是最新的,并且在我的 mongodb 上启用了文本搜索。如果我使用 pymongo,我什至可以在集合上创建一个文本索引。但是,我想留在 MongoEngine。我已经尝试了我的模型的多次迭代,但以下是失败的缩减版本:

class Situs(db.Document):
    streetname = db.StringField()
    streetnum = db.StringField()
    dscrptn = db.StringField()
    meta = {'indexes':[{'fields': ['$streetname']}]}

运行时的错误是:
mongoengine.errors.LookUpError:无法解析字段“$streetname”

任何想法或建议将不胜感激

【问题讨论】:

    标签: python mongodb flask mongoengine


    【解决方案1】:

    听起来你没有正确初始化你的 mongo 引擎,所以它找不到字段声明。确保所有导入都在那里,并且您也在设置烧瓶应用程序。这里重要的部分是 db 变量。尝试类似:

    from flask_mongoengine import MongoEngine
    from flask import Flask
    
    app = Flask(__name__)
    app.config["SECRET_KEY"] = "MYDARKLITTLESECRETRAINCOAT"
    app.config["MONGODB_SETTINGS"] = {'DB': 'mongodb://mongodb.mydb/databasename'}
    db = MongoEngine(app)
    
    class Situs(db.Document):
        streetname = db.StringField()
        streetnum = db.StringField()
        dscrptn = db.StringField()
        meta = {'indexes':[{'fields': ['$streetname']}]}
    
    
    situs = Situs()
    print situs
    

    输出应该是:Situs 对象

    让我知道这是否有效,或者您是否遇到其他类型的错误。

    【讨论】:

    • 好的,那么为什么这被否决了?如果您要否决答案,至少要具体说明原因。这对我来说很好,我只是想在这里提供帮助,我什至要求让我知道它是否有效或提供更多错误。嘘。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    相关资源
    最近更新 更多