试图在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”
非常感谢任何想法或建议
答案 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对象
如果可行或者您遇到其他类型的错误,请告诉我。