如何查看mongodb执行的查询?
我一直在我的log/development.log中看到这一点,我想知道这个查询是否真的在我的数据库中执行:如何查看mongodb执行的查询?,mongodb,Mongodb,我一直在我的log/development.log中看到这一点,我想知道这个查询是否真的在我的数据库中执行: MONGODB (0ms) socialcrunch_development['tags'].find({:_id=>"secrets"}).limit(-1).sort([[:_id, :asc]]) 我可以看到在我的mongo db上执行的查询吗?这样我就可以计算它们,它们通常都是。查找命令,还是我在寻找其他内容?打印所有活动读取: db.currentOp().inprog
MONGODB (0ms) socialcrunch_development['tags'].find({:_id=>"secrets"}).limit(-1).sort([[:_id, :asc]])
我可以看到在我的mongo db上执行的查询吗?这样我就可以计算它们,它们通常都是。查找命令,还是我在寻找其他内容?打印所有活动读取:
db.currentOp().inprog.forEach(
function(d){
if(d.waitingForLock && d.lockType != "read")
printjson(d)
})
打印所有活动写入:
db.currentOp().inprog.forEach(
function(d){
if(d.waitingForLock && d.lockType != "write")
printjson(d)
})
如果您愿意,可以使用currentOp.op
按特定操作类型(插入、更新、删除等)进行过滤,从而获得更细粒度
有关更多信息,请查看MongoDB.org文档中的以下页面:
提供了良好的ui界面来检查引擎盖下服务器的运行时状态这与我的答案是一样的,但如果你更喜欢GUI路线,这是一个很好的选择。这在我的google搜索中很受欢迎,我正在寻找类似mysql的东西
SET global general_log=1;设置全局日志_输出='表'然后查询我的应用程序所做的查询(甚至可能通过查询文本进行过滤)。这在很大程度上帮助了我使用mysql来查看我的应用程序实际查询的内容,但我不知道如何在mongodb中执行此操作,而通过谷歌搜索,我可以访问与此类似的页面来查找活动查询。@HMR currentOp就是它听起来的样子(仅限于当前操作)。如果您希望从应用程序中收集所有数据库活动,以便分析查询性能,那么有一个相关但不同的工具可用于此目的。尝试将配置文件级别设置为“2”,将所有内容记录到system.profile集合中。更多信息:请注意,您不想让配置文件级别一直处于打开状态。只在短时间内像那样运行它,然后禁用它。这会导致性能成本和额外写入。