MongoDB的shell的db.stats()在PHP和Python( MongoDB shell

2019-07-30 15:09发布

我可以看到蒙戈外壳的统计数据

db.stats()

要么

db.collection_name.stats()

如何查看数据库的统计数据,或收藏,从PHP和Python。

编辑 :我做了它在PHP,但仍然无法做到这一点在Python。

救命?

Answer 1:

这是你如何做到这一点在Python ,如果您使用的是PyMongo驱动程序:


connection = pymongo.Connection(host = "127.0.0.1", port = 27017)
db = connection["test_db"]
test_collection = db["test_collection"]
db.command("dbstats") # prints database stats for "test_db"
db.command("collstats", "test_collection") # prints collection-level stats for "test_collection" under "test_db".  

参考文献:

  • db.command()
  • MongoDB的:如何从API db.stats()


  • Answer 2:

    这是你如何在PHP做

    $con= new Mongo()
    
    $stats=$con->dbName->command(array('dbStats' => 1));  // for db.stats()
    
    $stats=$con->dbName->command(array('collStats' => 'collection_name')); // for db.collection_name.stats()
    

    但如何做到这一点在Python?



    Answer 3:

    最简单的方法我已经找到了Mongoengine模型是这样做的:

    import mongoengine
    from models import MyModel
    
    connection = mongoengine.connection.get_connection()
    db = connection[MyModel._get_db().name]
    stats = db.command("collstats", MyModel._get_collection_name())
    

    这应该允许使用mongoengine的配置设置的收集和数据库的透明的变化。



    Answer 4:

    这是PHP代码来执行dbStats新的命令MongoDB驱动程序:

    $mongo = new \MongoDB\Driver\Manager('mongodb://localhost:27017');
    $cmdstats = new \MongoDB\Driver\Command(['dbStats' => 1]);
    $dbstats = $mongo->executeCommand('databaseName', $cmdstats);
    $dbstats->setTypeMap(array(
        'array' => 'array',
        'document' => 'array',
        'root' => 'array'
    ));
    
    // There must be only one item in $dbstats
    
    foreach ($dbstats as $dbs)
    {
        echo($dbs['dataSize']);
    }
    


    文章来源: MongoDB shell's db.stats() in php and python