【问题标题】:pymongo method find_one work but find method doesn'tpymongo 方法 find_one 有效,但 find 方法无效
【发布时间】:2019-03-31 12:27:06
【问题描述】:

我正在尝试一个简单的查询表达式:

df = db.persons.find_one({"name.first": "victor"})

这很好。当我使用find 方法尝试相同的查询时,返回为空。

df = db.persons.find({"name.first":"victor"})

我的目标是一个带有 2 个参数 "name.first" : "victor" 和 "name.last":"perdensen" 的查询表达式。我也试过$andoperator。

df = db.persons.find({"$and": [{"name.first": "victor"}, {"name.last": "pedersen"}]})

使用指南针的两个查询都没有问题。

【问题讨论】:

    标签: python mongodb pymongo


    【解决方案1】:

    如果有数据,find_one() 返回一个 dict,而 find() 返回一个迭代器,因为可能有多个 json 文档。

    因此,如果您使用find_one() 获得查询结果,您也会获得带有find() 的结果,但是这一次,您必须在for 循环中访问它。

    df = db.persons.find({"name.first": "victor"})
    for df1 in df:
        print(df1) # here you get the result
    

    【讨论】:

    • 谢谢!我忘了考虑方法 find 的返回类型。新手的东西。
    【解决方案2】:

    我认为你也可以这样做:

    df = list(db.persons.find({"name.first": "victor"}))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多