MongoDB为聚合查询获取executionStats

j9d*_*9dy 9 mongodb mongodb-java mongodb-query

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

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

  "executionStats": {
    "nReturned": 332505,
    "executionTimeMillis": 1349,
    "totalKeysExamined": 332505,
    "totalDocsExamined": 332505,
    ...
Run Code Online (Sandbox Code Playgroud)

但是当使用启用了解释的聚合时,它将不会返回上面显示的统计数据.

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

如果不测量客户端的统计数据,有什么方法可以做到这一点吗?

Pun*_*ngh 13

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

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

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


小智 6

对我来说它是这样工作的,你已经从版本 3.5.5 开始修复了这个问题

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

db.videos.explain('executionStats').aggregate([])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Max*_*Max 5

我能够通过以下方式做到这一点:

db.myUserCollection.explain("executionStats").aggregate([{$match: {firstName: "John"} }]);
Run Code Online (Sandbox Code Playgroud)

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