如何在MongoDB 3.4.10中获取聚合的executionStats?
如何获取MongoDB聚合查询执行时间 我试过这个:如何在MongoDB 3.4.10中获取聚合的executionStats?,mongodb,aggregation-framework,Mongodb,Aggregation Framework,如何获取MongoDB聚合查询执行时间 我试过这个: db.collection.explain("executionStats").aggregate( [ { '$match': { '$and': [ { 'meta.client_id': { '$eq': 1 } }, { 'meta.is_deleted': { '$ne': 1 } } ] } }, { '$group': { _id: '$Plant', value: { '$sum': 1 } }
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 } } ]
)
但这返回的是阶段
queryPlanner
、winningPlan
和rejectedplan
,而不是executionStats。我想获取以毫秒为单位的查询执行时间。在MongoDB 3.6之前,解释为aggregate
命令只支持默认的queryPlanner
详细模式,并忽略了任何其他选项(请参阅:)
您需要将MongoDB服务器升级到3.6或更高版本,以便与
aggregate
命令一起使用。根据mongo
shell中的version()
和db.version()
,您的MongoDB shell和服务器的具体版本是什么?executionStats
explain verbosity模式仅支持MongoDB 3.6或更高版本中的聚合查询。它是3.4.10 mongo shell。但是executionStats对于db.collection.find().explain(“executionStats”)在这个版本中工作得非常好。是的,但是find
是与aggregate
;-)不同的命令。在MongoDB 3.6之前,explain for theaggregate
命令仅支持默认的queryPlanner
verbosity,并忽略了任何其他选项(请参阅:)。如何在MongoDB 4中使用聚合的executionStats
模式executionStats
模式适用于find
查询,但不适用于aggregation
@qmn1711。如果此示例不适用于您,我建议您发布一个包含环境详细信息的新问题。特别是:您正在使用的应用程序或驱动程序的特定版本是什么?首先,我将使用mongo
shell(这是本问题中的语法)进行测试,并确保version()
和db.version()
都是报告3.6或更新版本。我测试过,它只适用于mongo shell
,感谢您的洞察力@qmn1711您最初使用的是较旧版本的mongo
shell还是其他管理UI?我使用的是robo3t1.2.1