12

我可以看到来自 Mongo shell 的统计信息

db.stats()

或者

db.collection_name.stats()

如何从 PHP 和 Python 查看数据库或集合的统计信息。

编辑:我已经在 PHP 中完成了,但仍然无法在 Python 中完成。

帮助?

4

4 回答 4

17

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()
  • 于 2012-08-17T23:05:04.910 回答
    9

    这就是你在 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中做到这一点?

    于 2012-07-25T13:23:11.080 回答
    0

    我发现使用 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 的配置设置对集合和数据库进行透明更改。

    于 2015-06-30T22:13:32.090 回答
    0

    这是使用新驱动程序执行dbStats命令的 PHP 代码: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']);
    }
    
    于 2017-10-25T14:47:02.180 回答