如何总结mongodb中的查询执行时间

时间:2014-04-15 14:15:56

标签: mongodb

我运行了数千个查询,现在我想记录所有的计时结果。但问题是成千上万的查询有几千个时间毫秒。所以我只想总结那些毫秒的总时间。那我该怎么做呢。

我使用了db.setProfilingLevel(2),然后使用db.system.profile.find({op:“query”})来获取时间。结果是

{ "ts" : ISODate("2014-04-15T13:05:08.434Z"), "op" : "query", "ns" : "practice.students", "query" : { "CID" : 55217 }, "nscanned" : 1000, "nreturned" : 1, "responseLength" : 53, "millis" : 0, "client" : "127.0.0.1", "user" : "" }
{ "ts" : ISODate("2014-04-15T13:05:08.472Z"), "op" : "query", "ns" : "practice.students", "query" : { "CID" : 152120 }, "nscanned" : 1000, "nreturned" : 1, "responseLength" : 54, "millis" : 0, "client" : "127.0.0.1", "user" : "" }

所以我想总结一下millis字段,我应该怎么做,有些人可以建议。

1 个答案:

答案 0 :(得分:0)

您可以将aggregate命令用于任何类型的分析,就像在任何其他集合上一样:

db.system.profile.aggregate([
    { "$match": { "op": "query" }},
    { "$group": { "_id": null, "millis": { "$sum": "$millis" } }}
])

使用各种framework operators。甚至更多。