2011-05-24 32 views
1

你如何去调试你的php mongodb代码? 例如,如果我执行:在php中调试mongodb的查询和其他功能

$cursor = $this->Collection->find($myQueryCriteria); 

如果一切正常,我回来在$光标数据。如果它不起作用,我会返回一个空数组()。

有什么方法可以看到发生了什么?也许某些日志记录可以打开mongodb记录错误或分析查询和其他命令?

回答

1

有一些方法,看看发生了什么事?

要“看看发生了什么”,请在光标上使用explain function

这将提供所用索引的指示,扫描文档的数量等。关于解释计划output here的详细信息。

也许某种日志记录可以打开mongodb记录错误或分析查询和其他命令?

要记录实际的DB查询,请使用DB profiler。默认情况下,将“慢”查询记录到数据库日志(查询> 100毫秒),但分析器确实可以更好地控制这种情况。

1

这个答案很简短,不太好看:不。您可以打开分析,但只能帮助查看到达服务器的查询。 http://www.mongodb.org/display/DOCS/Database+Profiler级别2记录所有操作。

还要检查http://php.net/manual/en/mongodb.lasterror.php

+1

那么......如果存在'MongoDB :: lastError()',为什么答案是'no'? – 2011-05-24 00:46:03

+0

,因为“某种日志记录可以打开,以便mongodb记录错误或分析查询和其他命令” - 没有这样的事情。有时我也希望有一些东西 - 比如N个匹配标准X的文档,M个匹配标准X和Y等的文档。 – chx 2011-05-24 03:19:22