0

MongoDB + PHP: mongodb オブジェクトに格納されているドキュメントのサイズをどのように照会しますか? これを書いている時点でのドキュメントの制限 (最近 4MB から引き上げられました) は 16MB です。

ObjectId を使用してドキュメントのサイズを照会するにはどうすればよいですか?

4

1 に答える 1

6

Object.bsonsize(document)あなたが求めている機能です。私はこのスレッドを読んでいて、phpでそれを行う方法についていくつかの提案を見つけています。最も簡単なのは、おそらくドキュメントオブジェクトをクエリしstrlen、'dオブジェクトで実行しbson_encodeてサイズをバイト単位で指定することです。

$byteSize = strlen( bson_encode( $yourDocument ) ); 

多くのドキュメントでこのチェックを実行したい場合、たとえばループで、すべてのドキュメントを読み戻さずに、コマンド実行を実行する必要があります(Mardixはそれを実行するためにこの小さな関数を投稿しました-注:それは可能性がありますハードコードされたグローバル変数を避けるために、簡単に少しだけ書き直すことができます):

$DBName = "MyDBName"; 
$MongoDB = new MongoDB(new Mongo(),$DBName); 

function documentSize(Array $Criteria){ 
  global $MongoDB; 
  $collectionName = "MyCollection"; 
  $jsonCriteria = json_encode($Criteria); 
  $code = "function(){ 
    return Object.bsonsize(db.{$collectionName}.findOne({$jsonCriteria})) 
  }"; 

  $resp = $MongoDB->execute($code); 
  return $resp["retval"]; 
} 

$idがドキュメントIDであるPHPの例

$myDocSize = documentSize(array("_id"=>$id)); 
于 2012-05-02T03:38:41.907 に答える