MongoDB为聚合查询获取executionStats

时间:2016-10-07 12:15:19

标签: mongodb mongodb-query mongodb-java

我正在寻找一种方法来检索聚合的executionStats

使用find()时,我可以使用explain轻松检索它们。 示例输出:

  "executionStats": {
    "nReturned": 332505,
    "executionTimeMillis": 1349,
    "totalKeysExamined": 332505,
    "totalDocsExamined": 332505,
    ...

但是当使用aggregations with explain enabled 时,它不会返回上面显示的统计数据。

Thisthis是相关的,但没有给出可行的解决方案。因为这可能在此期间发生了变化,我打开了这个问题。

如果不测量客户端的统计数据,有没有办法做到这一点?

4 个答案:

答案 0 :(得分:8)

目前(MongoDB 3.2)聚合不支持executionStats,在aggreagation中使用explain选项可以获得与查询相关的一些数据,但其中没有executionStats。建议你可以在这里检查它的状态

https://jira.mongodb.org/browse/SERVER-19758

如果您想尽快实施,请提出问题。

答案 1 :(得分:2)

我能够通过以下方式完成:

db.myUserCollection.explain("executionStats").aggregate([{$match: {firstName: "John"} }]);

参考:https://jira.mongodb.org/browse/SERVER-19758

答案 2 :(得分:1)

对我来说,它的工作原理是这样的,您已经从3.5.5版中修复了该问题

它显示了执行计划和其他指标。

select Distinct Zone, location from dbo.globalLocations where zone = 'ZoneSE'
zone     Location
ZoneSE   FL1
ZoneSE   FL2
ZoneSE   FL3
ZoneSE   GA1
ZoneSE   GA2
ZoneSE   AL1
ZoneSE   AL2
ZoneSE   SC1
ZoneSE   SC2

enter image description here

答案 3 :(得分:0)

在mongodb v3.4之前,mongo聚合查询不支持

executionStats。该问题已在v3.6中修复。 即db.videos.explain('executionStats').aggregate([])