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

标签 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”

如有任何想法或建议,我们将不胜感激

最佳答案

听起来您没有正确初始化 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/

相关文章:

python - 如何在不使用 iframe 的情况下结合 Dash 和 Flask 登录?

android - 如何从Android调用后端Python脚本

python - 根据列的值将 Pandas 数据框拆分为多个数据框

python - 遍历枚举返回括号中的字符串

python - 如何在 python 中将一个列表添加到另一个列表?

node.js - 正则表达式搜索错误

mongodb - 如何重新映射 mongodb 集合的字段?

c# - 使用 C# 代码中的 python.net 调用带有命名参数的 python 函数

mongodb - Mongodb无分组平均聚合查询

python - 如何在Flask路由(Werkzeug)中验证整数范围?