Kyl*_*son 0 php mongodb mongodb-php mongodb-query
MongoDB + PHP:如何查询存储在mongodb对象中的文档大小?在撰写本文时(最近从4MB增加),文档限制为16MB.
如何使用ObjectId查询文档的大小?
Object.bsonsize(document)是你追求的功能.我正在阅读这个帖子,并找到一些关于如何在PHP中做到这一点的建议.最简单的可能是查询文档对象并strlen在bson_encode'd对象上运行,为您提供以字节为单位的大小.
$byteSize = strlen( bson_encode( $yourDocument ) );
Run Code Online (Sandbox Code Playgroud)
如果你想要检查很多文档,比如循环,不回读每个文档,你需要运行一个命令执行(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"];
}
Run Code Online (Sandbox Code Playgroud)
PHP示例,其中$ id是文档ID
$myDocSize = documentSize(array("_id"=>$id));
Run Code Online (Sandbox Code Playgroud)