【问题标题】:pymongo extract document with more than one condition mongodbpymongo提取具有多个条件mongodb的文档
【发布时间】:2014-06-18 11:41:55
【问题描述】:

我正在 pymongo 上寻找与此 mongodb 命令等效的命令:

db.collection.find({
    $and:[
        {"key1":"value1"},
        { 
            $or: [
                {"key2" : "value2"},
                {"key2": "value3"}
           ]
        }
    ]
})

一般来说,我想搜索一个添加多个条件的文档。

谢谢

【问题讨论】:

  • $and 实际上隐含在所有 MongoDB 查询中,因此您不需要包装所有这些。确实没有区别,因为这方面的 Python 语法基本相同。你还有一个额外的大括号 } 的错字。
  • <collectionname>.find_one(<condition>) 应该可以工作

标签: python json mongodb find pymongo


【解决方案1】:

你可以做所有 mongodb shell 做的事情,但是用 pymongo。只需使用字符串!

client = MongoClient('localhost', 47017)
mydb = client.mydb
mycol = mydb.mycol

mycol.find({
    "$and":[
        {"key1":"value1"},
        { 
            "$or": [
                {"key2" : "value2"},
                {"key2": "value3"}
           ]
        }
    ]
})

【讨论】:

    【解决方案2】:

    遵循 API 文档:

    http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.find

    只要使用find(),spec参数可以处理一个多键的dict,所以你可以直接使用

    col.find({"key1":"value", "$or":["key2":"value2", "key3":"value3"]})
    

    【讨论】:

      猜你喜欢
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      • 2021-11-23
      • 2018-08-09
      • 2014-06-27
      • 2017-05-09
      相关资源
      最近更新 更多