2012-07-25 14 views
6

posso vedere le statistiche dal guscio Mongo comeMongoDB Shell() in PHP e Python

db.stats() 

o

db.collection_name.stats() 

Come faccio a visualizzare le statistiche di un database o di un raccolta, da PHP e Python.

EDIT: L'ho fatto in PHP ma non riesco ancora a farlo in Python.

Aiuto?

+0

Dovreste accettare una risposta che risponde alla tua domanda modificato;) –

risposta

9

Questo è come si fa in Python se si utilizza il driver 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". 

Riferimenti:

  • db.command()
  • MongoDB: how to get db.stats() from API
  • +0

    Grazie per il codice Python. – lovesh

    9

    Questo è come si fa in 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() 
    

    Ma come fare questo in Python?

    +3

    +1 Grazie per il codice PHP. –

    +0

    Thx OP per codice PHP per questo. :) –

    0

    Il modo più semplice che ho trovato per fare questo con un modello Mongoengine è stato questo:

    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()) 
    

    Ciò dovrebbe consentire modifiche trasparenti nella raccolta e database utilizzando le impostazioni di configurazione di mongoengine.

    0

    Si tratta di codice PHP per eseguire dbStats comando con nuovo driver 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']); 
    }