Mongodb 解释聚合框架
我只是读了这个链接,但没有解释我的问题 我想要检索有关聚合的信息,比如db.coll.find{bla:foo}.explain 我试过了Mongodb 解释聚合框架,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我只是读了这个链接,但没有解释我的问题 我想要检索有关聚合的信息,比如db.coll.find{bla:foo}.explain 我试过了 db.coll.aggregate([ my-op ], { explain: true }) 结果不是解释,而是对数据库的查询 我也试过了 db.runCommand({ aggregate: "mycoll", pipeline: [ my- op ],
db.coll.aggregate([
my-op
],
{
explain: true
})
结果不是解释,而是对数据库的查询
我也试过了
db.runCommand({
aggregate: "mycoll",
pipeline: [
my- op
],
explain: true
})
我用这个命令检索了信息,但我没有millis、nscannedObjects等
我使用mongoDb 2.6.2聚合不像传统的查询那样运行,您不能对它们运行解释。它们实际上被归类为命令,尽管它们使用索引,但您无法立即了解它们是如何实时执行的
您最好的选择是将聚合的$match部分作为查询运行,并使用explain了解索引的执行情况,了解nscanned。聚合的运行方式与传统查询不同,您无法对其运行explain。它们实际上被归类为命令,尽管它们使用索引,但您无法立即了解它们是如何实时执行的
最好的办法是使用聚合中的$match部分,并将其作为带有explain的查询运行,以了解索引的执行情况,并了解nscaned的情况。我不确定您是如何无法获取explain信息的。在2.6.x中,此信息可用,并且您的聚合结果:
db.orders.aggregate([
# put your whole aggregation query
], {
explain: true
})
这让我觉得:
{
"stages" : [
{
"$cursor" : {
"query" : {
"a" : 1
},
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "test.a",
"indexFilterSet" : false,
"parsedQuery" : {
"a" : {
"$eq" : 1
}
},
"winningPlan" : {
"stage" : "COLLSCAN",
"filter" : {
"a" : {
"$eq" : 1
}
},
"direction" : "forward"
},
"rejectedPlans" : [ ]
}
}
}
],
"ok" : 1
}
我不知道你是怎么弄不到解释信息的。在2.6.x中,此信息可用,并且您的聚合结果:
db.orders.aggregate([
# put your whole aggregation query
], {
explain: true
})
这让我觉得:
{
"stages" : [
{
"$cursor" : {
"query" : {
"a" : 1
},
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "test.a",
"indexFilterSet" : false,
"parsedQuery" : {
"a" : {
"$eq" : 1
}
},
"winningPlan" : {
"stage" : "COLLSCAN",
"filter" : {
"a" : {
"$eq" : 1
}
},
"direction" : "forward"
},
"rejectedPlans" : [ ]
}
}
}
],
"ok" : 1
}
对于MongoDB 2.6+,这是不正确的-检查这是对2.6的一个很好的补充这对于MongoDB 2.6+来说不是正确的-检查这是对2.6 MongoDB 2.6的聚合解释的一个很好的补充说明:true选项描述了管道将如何处理,但不包括与查找查询上的解释相同的执行统计信息,例如,nScanned和nScannedObjects值。似乎这就是原始问题试图描述的——他们能够检索到信息,但无法检索到预期的细节。MongoDB 2.6的聚合解释:true选项描述了管道将如何处理,但不包括与查找查询解释相同的执行统计信息,nScanned和nScannedObjects值。似乎这就是最初的问题试图描述的——他们能够检索到信息,但不能检索到预期的细节。