我无法使用 Node.js 的 native mongodb 驱动程序获得正确的解释。 当我使用 mongo shell 时,一切都很好。我的语法错误吗?我还有什么地方做错了吗?
db.user.find({},{explain:true}).toArray
db.user.find({}).explain
我已经尝试过这两种方法,用户表中有两个文档,它给了我这个输出:
{ cursor: 'BasicCursor',
isMultiKey: false,
n: 1,
nscannedObjects: 1,
nscanned: 1,
nscannedObjectsAllPlans: 1,
nscannedAllPlans: 1,
scanAndOrder: false,
indexOnly: false,
nYields: 0,
nChunkSkips: 0,
millis: 0,
allPlans:
[ { cursor: 'BasicCursor',
isMultiKey: false,
n: 1,
nscannedObjects: 1,
nscanned: 1,
scanAndOrder: false,
indexOnly: false,
nChunkSkips: 0 } ],
server: 'Rocket.local:27017',
filterSet: false,
stats:
{ type: 'LIMIT',
works: 2,
yields: 0,
unyields: 0,
invalidates: 0,
advanced: 1,
needTime: 1,
needFetch: 0,
isEOF: 1,
children: [ [Object] ] } }
这是错误的。当我在 mongo shell 中运行相同的查询时,它给出了正确的输出:
"cursor" : "BasicCursor",
"isMultiKey" : false,
"n" : 2,
"nscannedObjects" : 2,
"nscanned" : 2,
"nscannedObjectsAllPlans" : 2,
"nscannedAllPlans" : 2,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 0,
"server" : "Rocket.local:27017",
"filterSet" : false,
"stats" : {
"type" : "COLLSCAN",
"works" : 4,
"yields" : 0,
"unyields" : 0,
"invalidates" : 0,
"advanced" : 2,
"needTime" : 1,
"needFetch" : 0,
"isEOF" : 1,
"docsTested" : 2,
"children" : []
}
我也遇到了一些其他(相关问题)......
最佳答案
在我进行了一系列低级分析和优化之后,应该在驱动程序 2.0.13 中修复。
关于javascript - MongoDB原生 Node 驱动: Explain is Broken?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27844128/