我目前正試圖通過php檢索mongodb的統計信息。我已經找到了運行命令(https://stackoverflow.com/a/11650724/2889265)的方法,但是執行它的方式與直接在數據庫上執行db.stats()的預期結果完全不同。這裏是我得到的:PHP MongoDB獲取統計信息
結果PHP $ this-> database-> command(array('dbStats'=> 1));:
MongoDB\Driver\Cursor Object
(
[database] => dev
[collection] =>
[query] =>
[command] => MongoDB\Driver\Command Object
(
[command] => stdClass Object
(
[dbStats] => 1
)
)
[readPreference] => MongoDB\Driver\ReadPreference Object
(
[mode] => primary
)
[isDead] =>
[currentIndex] => 0
[currentDocument] =>
[server] => MongoDB\Driver\Server Object
(
[host] => xxx.xxx.xxx.xxx
[port] => 27017
[type] => 1
[is_primary] =>
[is_secondary] =>
[is_arbiter] =>
[is_hidden] =>
[is_passive] =>
[last_is_master] => Array
(
[ismaster] => 1
[maxBsonObjectSize] => 16777216
[maxMessageSizeBytes] => 48000000
[maxWriteBatchSize] => 1000
[localTime] => MongoDB\BSON\UTCDateTime Object
(
[milliseconds] => 1498465564742
)
[maxWireVersion] => 2
[minWireVersion] => 0
[ok] => 1
)
[round_trip_time] => 12
)
)
結果db.stats()
{
"db" : "dev",
"collections" : 21,
"objects" : 7153120,
"avgObjSize" : 818.2133580871005,
"dataSize" : 5852778336,
"storageSize" : 6882250752,
"numExtents" : 71,
"indexes" : 26,
"indexSize" : 866189968,
"fileSize" : 8519680000,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"extentFreeList" : {
"num" : 0,
"totalSize" : 0
},
"ok" : 1
}
難道我做錯了,做我必須做什麼,要得到這樣db.stats統計()?
我使用php 7.1與作曲包mongodb/mongodb。 MongoDB的版本爲2.6.10。
第二個問題,然後我執行
$ this-> database-> command(array('collStats'=>「dev」));我得到一個RuntimeException「Collection [dev.dev] not found。」。爲什麼?
找到我的RuntimeException的原因...我要求「dev」作爲collectionname,但它是數據庫的名稱。
謝謝你的迴應。 iterator_to_array()函數是小而有用的提示。我發現我的錯誤。我只查看了命令的結果,但沒有進入MongoDB \ Driver \ Cursor Object。 – MIB
你也有一個想法,爲什麼我得到RuntimeException? – MIB