javascript - MongoDB原生 Node 驱动: Explain is Broken?

标签 javascript node.js mongodb

我无法使用 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" : []
    }

我也遇到了一些其他(相关问题)......

Limit = 1 = 1ms, Limit > 1 = 150ms (mongo-melt-down)

Odd MongoDB/Node Explain Results

最佳答案

在我进行了一系列低级分析和优化之后,应该在驱动程序 2.0.13 中修复。

关于javascript - MongoDB原生 Node 驱动: Explain is Broken?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27844128/

相关文章:

javascript - Vue.js - 需要在不重新加载的情况下切换方向(rtl 到 ltr,反之亦然)

javascript - 我使用 jquery 上传图像无法正常工作

javascript - 防止 CSS3 动画在页面加载后触发

node.js - Nodemailer getaddrinfo ENOTFOUND 错误

Node.js safari 推送通知间歇性签名失败

node.js - 如何使 passportjs google login oauth 与 JWT 一起工作,而不是通过序列化/反序列化方法创建 session ?

javascript - Mongoose __v 什么时候变

javascript - 使用 cookie 记住一篇文章是否已被阅读 - 需要注意的标识符

node.js - 有条件地更新 Mongoose 查询中的项目

MongoDb 和 Golang - 组前匹配