2012-07-25 29 views
6

tôi có thể thấy số liệu thống kê từ Mongo vỏ nhưMongoDB vỏ của() trong php và trăn

db.stats() 

hoặc

db.collection_name.stats() 

Tôi có thể xem thống kê của một cơ sở dữ liệu, hoặc của một bộ sưu tập, từ PHP và Python.

EDIT: Tôi đã thực hiện nó bằng PHP nhưng vẫn không thể làm điều đó bằng Python.

Trợ giúp?

+0

Bạn nên chấp nhận một câu trả lời mà trả lời câu hỏi của bạn đã chỉnh sửa;) –

Trả lời

9

Đây là cách bạn làm điều đó trong Python nếu bạn đang sử dụng trình điều khiển 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". 

Tài liệu tham khảo:

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

    Cảm ơn mã python. – lovesh

    9

    Đây là cách bạn làm điều đó trong 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() 
    

    Nhưng làm thế nào để làm điều này trong python?

    +3

    1 Cảm ơn các mã PHP. –

    +0

    Thx OP cho mã PHP cho việc này. :) –

    0

    Cách đơn giản nhất tôi đã tìm thấy để làm điều này với một mô hình Mongoengine là thế này:

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

    này sẽ cho phép thay đổi trong suốt trong bộ sưu tập và cơ sở dữ liệu sử dụng cài đặt cấu hình mongoengine của.

    0

    Đây là mã PHP để thực hiện dbStats lệnh với trình điều khiển mới 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']); 
    }