我一直在努力尝试在 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”
如有任何想法或建议,我们将不胜感激
最佳答案
听起来您没有正确初始化 mongo 引擎,因此它找不到字段声明。确保所有导入都在那里,并且您也在设置 flask 应用程序。这里重要的部分是 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 对象
请告诉我这是否有效或者您是否遇到其他类型的错误。
关于python - Flask Mongoengine 文本搜索无法解析字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32423083/