如何在 MongoDB 和 PHP 中的 Map Reduce 查询中使用说明

Posted

技术标签:

【中文标题】如何在 MongoDB 和 PHP 中的 Map Reduce 查询中使用说明【英文标题】:How to use explain on a Map Reduce query in MongoDB and PHP 【发布时间】:2012-07-16 10:02:23 【问题描述】:

我正在使用 explain 进行简单查询以准确了解执行时间。

    $this->db->toto->find($req)->sort(array('date' => 1))->explain();

我现在想在地图上使用解释并减少查询,该怎么做? 我应该使用“经典”分析系统吗?

我正在尝试比较这两个查询的执行时间。

例如:

    $res = $this->db->command(array(
        "mapreduce" => "toto",
        "map" => $map,
        "reduce" => $reduce,
        "finalize" => $finalize,
        "query" => $req,
        "out" => array("inline"=>1)
    ))->explain();

不起作用,因为命令返回一个数组(说明需要 MongoCursor)。

非常感谢:)

【问题讨论】:

【参考方案1】:

Explain 不适用于 map/reduce 之类的命令。您可以做的就是对您正在使用的查询运行解释。

如果您只需要执行时间,您可以运行 m/r 并对其计时。这就是 explain 决定执行时间的方式。

【讨论】:

以上是关于如何在 MongoDB 和 PHP 中的 Map Reduce 查询中使用说明的主要内容,如果未能解决你的问题,请参考以下文章

PHP中的MongoDB - 如何将项目插入集合中的数组?

mongodb中的联合查询不使用map/reduce

mongodb使用map reduce从其他集合中插入嵌入文档海量集合

mongodb有关系数据库中的trigger和procedure等属性吗?

如何使用 PHP 正确检查 MongoDB Atlas 数据库中的现有数据。我总是知道名字已经存在

PHP MongoDB 驱动程序的游标如何缓冲结果集?