关于db.currentOp()。inprog的结果很奇怪

时间:2015-08-31 15:59:29

标签: mongodb

我运行命令ID = (int)x.Field<double>("ID"), ErrorDescription = x.Field<string>("ErrorDescription"), ErrorDescriptionWithParent = x.Field<string>("ErrorDescriptionWithParent"), ParentID = (int)x.Field<double>("ParentID"), ,结果让我感到困惑。

为什么db.currentOp().inprogns,而""为空对象。

query

}

1 个答案:

答案 0 :(得分:1)

我认为第一种方法是理解方法currentOp()的目的。它由Mongo定义,&#34;返回一个文档,其中包含有关数据库实例的正在进行的操作的信息。&#34;在这里,您可以传入一个名为&#34; <34>操作&#34;的可选参数。以下分类输入参数定义。

  

指定要报告的操作。可以传递布尔值或   document.Specify为包含空闲连接和系统操作的操作。指定具有查询条件的文档,以仅报告与条件匹配的操作。

现在,根据定义,您可以指定参数来定位正在进行的所需操作。其中,您已指示ns和query均为null。这样表示是因为您没有指定要查看其操作的命名空间(ns)或文档(查询)。基本上,将显示的是您希望查看当前操作的值。

  

例如,对于db.collection.find()操作,查询包含   查询谓词。

以下是传递给currentOp()方法的命名空间参数的示例。

db.currentOp(
   {
     "active" : true,
     "secs_running" : { "$gt" : 3 },
     "ns" : /^db1\./
   }
)

这是一个文档查询,其中包含&#34; waitingForLock&#34;条件也是如此。

db.currentOp(
   {
     "waitingForLock" : true,
     $or: [
        { "op" : { "$in" : [ "insert", "update", "remove" ] } },
        { "query.findandmodify": { $exists: true } }
    ]
   }
)

有关详细信息,请查看http://docs.mongodb.org/manual/reference/method/db.currentOp

希望这有帮助!