首页 > 解决方案 > 如何在 MongoDB 3.4.10 中获取用于聚合的 executionStats?

问题描述

如何获取 MongoDB 聚合查询执行时间?

我试过这个:

db.collection.explain("executionStats").aggregate(
[ { '$match': { '$and': [ { 'meta.client_id': { '$eq': 1 } },
  { 'meta.is_deleted': { '$ne': 1 } } ] } },
  { '$group':
     { _id: '$Plant',
       value: { '$sum': 1 } } },
  { '$sort': { _id: 1 } } ]
)

但这是返回阶段queryPlannerwinningPlanrejectedPlans不是executionStats。我想以毫秒为单位获取查询执行时间。

标签: mongodbaggregation-framework

解决方案


在 MongoDB 3.6 之前,explain for the aggregatecommand 仅支持默认queryPlanner详细模式并忽略任何其他选项(请参阅:SERVER-19758)。

您需要将 MongoDB 服务器升级到 3.6 或更高版本,以便在命令中使用额外的详细模式aggregate


推荐阅读