【问题标题】:Pymongo find() by filter variable return emptyPymongo find() 通过过滤变量返回空
【发布时间】:2016-08-28 02:23:05
【问题描述】:

我用 python 3、mongodb 和 bottle 编写代码。

此代码返回空文档。我检查了name,这是正确的值。

@bottle.route('/test1/<name>', method='GET')
def test_detail(name):
    result = dbcoll.find({"student": name})
    return template('detail',name=result)

我修改为硬编码name,它可以正确显示结果!

@bottle.route('/test1/<name>', method='GET')
def test_detail(name):
    name = "peter chan"
    result = dbcoll.find({"student": name})
    return template('detail',name=result)

【问题讨论】:

    标签: python pymongo bottle


    【解决方案1】:

    问题可能出在名称中的空格上。通常字符串是 url 编码的,空格字符转换为“+”。您可能希望对其进行 url 解码并在 db 查询中使用结果。

    【讨论】:

      【解决方案2】:

      检查您是否在函数内部的name 中获得了一些价值,我的直觉是您在该变量中获得了None

      【讨论】:

      • 感谢您的评论。我确实将print(name) 放在find() 之前,它包含值。就像我硬编码一样。
      猜你喜欢
      • 2019-06-11
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-30
      • 2019-04-08
      • 1970-01-01
      • 2017-06-09
      相关资源
      最近更新 更多