Flask Mongoengine文本搜索无法解析字段

时间:2015-09-06 11:32:29

标签: python mongodb flask mongoengine

试图在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”

非常感谢任何想法或建议

1 个答案:

答案 0 :(得分: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对象

如果可行或者您遇到其他类型的错误,请告诉我。

相关问题