2012-03-16 51 views
0

通常在Django我可以找出哪些查詢正在對數據庫運行通過:如何找出Django-MongoDB正在運行的查詢?

from django.db import connections 
... 
# run some model queries 
... 
print connections['default'].queries 

我怎麼可能會看到使用的Django的MongoDB是一回事嗎?

+0

我不知道如何做到這一點在Django,但你可以結帳http://www.mongodb.org/display/DOCS/Viewing+and+Terminating+Current+Operation。 – Ren 2012-03-16 19:44:37

回答

0

後通過源多挖:

from django.db import connections 
db_wrapper = connections['default'] 
print db_wrapper.db_connection.current_op() 

打印輸出在由人提供的鏈接找到:

{ inprog: [ { "opid" : 18 , "op" : "query" , "ns" : "mydb.votes" , 
    "query" : "{ score : 1.0 }" , "inLock" : 1 } 
    ] 
} 
+0

這是你在那裏使用的不穩定的API。可能更適合查詢日誌記錄。 http://paste.pocoo.org/show/569242/ – 2012-03-21 21:58:30

+0

這不是爲了記錄目的,而是想看看查詢的樣子。然而,我很想知道你在哪裏發現這是一個不穩定的API,因爲我希望能夠在API發生變化時更新此答案。謝謝! – 2012-03-22 16:14:35

+0

好吧,不會查詢日誌顯示你的查詢是什麼樣子?在即將發佈的版本中,db_connection的名字已經改變了(我認爲是'database')。 – 2012-03-23 10:20:58

0

您可以使用Django的內置登錄基礎架構來記錄數據庫查詢。

+0

我相信OP所問的問題是如何首先獲取查詢。 – 2012-03-17 00:25:01