2011-05-24 23 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