Db.stats () оболочки MongoDB в php и python

Я могу увидеть статистику из оболочки Mongo как

db.stats()

or

db.collection_name.stats()

Как просмотреть статистику базы данных или коллекции из PHP и Python.

ИЗМЕНИТЬ: я сделал это на PHP, но все еще не могу сделать это на Python.

Помощь?


person lovesh    schedule 25.07.2012    source источник


Ответы (4)


Вот как вы это делаете в 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: как получить db.stats () из API
  • person Sagar Hatekar    schedule 17.08.2012
    comment
    Может ли кто-нибудь подтвердить, что это и документы действительно точны? Я получаю command() missing 1 required positional argument: 'command' независимо от того, что я использую в качестве аргумента. Это устарело и не обновлялось в документах? - person CodeSpent; 01.12.2018

    Вот как вы это делаете в 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()
    

    Но как это сделать на питоне?

    person lovesh    schedule 25.07.2012

    Самый простой способ, который я нашел для этого с моделью 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.

    person Adam Lamers    schedule 30.06.2015

    Это 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']);
    }
    
    person peschanko    schedule 25.10.2017