MongoDB + PHP:如何查询存储在 mongodb 对象中的文档的大小?在撰写本文时(最近从 4MB 提高)的文档限制为 16MB。
如何使用 ObjectId 查询文档的大小?
MongoDB + PHP:如何查询存储在 mongodb 对象中的文档的大小?在撰写本文时(最近从 4MB 提高)的文档限制为 16MB。
如何使用 ObjectId 查询文档的大小?
Object.bsonsize(document)
是你追求的功能。我正在阅读这个线程并找到一些关于如何在 php 中执行此操作的建议。最简单的可能是查询文档对象并strlen
在bson_encode
'd 对象上运行,为您提供以字节为单位的大小。
$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));