2012-03-16 28 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

相关问题