如何获得对帐户的解释 MongoDB?

在 MongoDB 您可以解释如何执行该请求,具有有趣的生产力信息:


> db.people.find/{ 'items' : { '$gte' : 1 } }/.explain//


我可以得到同样的东西吗? "count" /哪个不是请求,而是一个团队/?


> db.people.count/{ 'items' : { '$gte' : 1 } }/
已邀请:

知食

赞同来自:

Mongo 3.0 提出了一种解释与光标无关的请求的新方法:


db.my_collection.explain//.count//


厘米。:
http://docs.mongodb.org/manual ... plain

喜特乐

赞同来自:

基于
https://jira.mongodb.org/browse/SERVER-14098
, 新的未来版本将以以下格式支持以下方式:


db.runCommand/{
explain: {
count: 'collectionName',
query: {
foo: 'bar'
}
}
}/

龙天

赞同来自:

我几乎确定 count/query/ - 这是一个减少 find/query/.count//- 向前言语,解释是完全相同的。 没有具体的

优化计数

, 除了例外,它可能是对集合的完整计算。 例如,计算范围的非索引字段的计算与执行完全相同 find.explain 范围相同。

我写了一个调用的功能 timeCount, 这需要平均时间函数 count, 然后显示结果 explain 比较。


function timeCount/coll, query/ {
var n = 5;
var total = 0;
for/var i = 0; i < n; i++/ {
var start = new Date//;
db[coll].find/query/.count//;
var end = new Date//;
total += /end - start/;
print/"time[" + i + "]: " + /end - start/ + "ms"/;
}
print/"average time: " + /total / n//;

var explain = db[coll].find/query/.explain//;
print/"explain /from find/: "/;
for/e in explain/ {
if/typeof explain[e] == "string" || typeof explain[e] == "number"/ {
print/e + ": " + explain[e]/;
}
}
}


输出如下:


> timeCount/'test',{x:{$gt:5000}}/;
time[0]: 1339ms
time[1]: 1280ms
time[2]: 1347ms
time[3]: 1322ms
time[4]: 1299ms
average time: 1317.4
explain /from find/:
cursor: BtreeCursor x_1_y_1
nscanned: 995062
nscannedObjects: 995062
n: 995062
millis: 1390
nYields: 0
nChunkSkips: 0

郭文康

赞同来自:

在你不能放的那一刻
explain//


count//

, 因为认为这是一个团队,而不是光标。

它 JIRA 问题跟踪此请求:
https://jira.mongodb.org/browse/SERVER-3493

要回复问题请先登录注册