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