如何验证从express.js服务器到mongo db的每个查询日志?

时间:2014-07-30 20:45:16

标签: node.js mongodb express

如何验证来自express.js服务器的每个查询到mongo db?

我看了manage-the-database-profiler 我将个人资料级别设置为db.setProfilingLevel(2,200)。在我的页面上使用mongoose跟随mongo DB调用,如下面的

mycollection.findOne({MyId: 1}, function(err, data){

    })

当我查看日志文件时,无法访问" mycollection"。 此外,日志文件有时会在我的某些页面上包含查询,如下所示。

2014-07-30T13:11:59.258-0700 [conn33]查询myDB.myOtherCollection查询:{MyID:100} planSummary:COLLSCAN ntoskip:0 nscanned:850 nscannedObjects:850 keyUpdates:0 numYields:7 locks(micros) r:6101 nreturned:0 reslen:20 3ms


那么有什么方法可以显示所有查询日志到mongo数据库?

3 个答案:

答案 0 :(得分:1)

由于您使用的是mongoose,因此可以通过启用debug来查看执行的查询。

mongoose.set('debug', true)

答案 1 :(得分:1)

db.setProfilingLevel有一个可选的level参数,当设置为2时,记录数据库的system.profile集合中的所有操作,日志中文件。 slowMS参数确定查询在记录到日志文件之前必须有多慢。

如果您想密切监控集合中的活动,请考虑使用MMS进行监控,因为它以比system.profile更友好的格式公开了大量有用的用法,性能和分析信息。< / p>

答案 2 :(得分:0)

如果要将第二个参数slowMS设置为1ms,这将记录所有占用时间超过1ms的查询 - 这几乎就是所有查询。