Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 使用pymongo筛选器数据查找v.s何处_Mongodb_Find_Pymongo_Where - Fatal编程技术网

Mongodb 使用pymongo筛选器数据查找v.s何处

Mongodb 使用pymongo筛选器数据查找v.s何处,mongodb,find,pymongo,where,Mongodb,Find,Pymongo,Where,我想用pymongo过滤数据。但我不知道这两种方法有什么不同。结果表明,第一种方法的性能优于第二种方法。但是我已经在我的存储中过滤了一个查询集列表。这是mongodb功能吗?还是pymongo功能 以下是我的例子: 使用查找方法:(更快) 使用查找方法&where表达式:(较慢) 在官方文档中,提到if可以使用标准运算符,避免使用$where表达式。您基本上已经自己给出了答案。第一个版本应该是您的首选选项,因为使用$的第二个版本将导致执行时间变慢。原因之一是,$where将不使用任何索引()

我想用pymongo过滤数据。但我不知道这两种方法有什么不同。结果表明,第一种方法的性能优于第二种方法。但是我已经在我的存储中过滤了一个查询集列表。这是mongodb功能吗?还是pymongo功能

以下是我的例子:

  • 使用查找方法:(更快)

  • 使用查找方法&where表达式:(较慢)


  • 在官方文档中,提到if可以使用标准运算符,避免使用$where表达式。您基本上已经自己给出了答案。第一个版本应该是您的首选选项,因为使用
    $的第二个版本将导致执行时间变慢。原因之一是,
    $where
    将不使用任何索引()

    您可以在服务器日志中看到PHP驱动程序真正发送给MongoDB的查询,方法是在服务器上启用如下日志记录:

    此外,一旦您知道了可以用来比较不同执行计划的精确查询

    result = pymongo.db.mycollection.find({
       condition1,
       condition2
    })
    
    query_data = pymongo.db.mycollection.find({
       condition1
    })
    
    result = query_data.where(Code("function() {
      return condition2}"))