2

我正在使用带有 Codeigniter (Cimongo) 的 MongoDB,我需要在网页上打印出命令 db.currentOp 的结果,以便我可以使用数据进行调试。

我怎样才能做到这一点?

感谢所有帮助!

4

1 回答 1

3

基于从 MongoDB 文档查看和终止当前操作db.currentOp(),该命令只是对数据库特殊$cmd.sys.inprog集合的查询。您也可以通过 JS shell 确认这一点:

$ mongo
MongoDB shell version: 2.1.0
connecting to: test
> db.currentOp
function (arg) {
    var q = {};
    if (arg) {
        if (typeof arg == "object") {
            Object.extend(q, arg);
        } else if (arg) {
            q.$all = true;
        }
    }
    return this.$cmd.sys.inprog.findOne(q);
}

我没有使用过 CodeIgniter 或 Cimongo,但是查看Cimongo.php,您应该能够使用get()with 方法$cmd.sys.inprog来接收光标,然后您可以使用它来读取第一个元素。似乎没有任何抽象MongoCollection::findOne(),但这将是我在原始 PHP 中执行此操作的首选:

$mongo = new Mongo();
$inprog = $mongo->selectCollection('test', '$cmd.sys.inprog');
var_dump($inprog->findOne());
于 2012-07-06T21:03:48.423 回答