MongoDB + PHP:如何查询对象大小


MongoDB + PHP: How do you query object sizes?

MongoDB + PHP:如何查询存储在mongodb对象中的文档的大小?在撰写本文时,文档限制(最近从 4MB 提高)为 16MB。

如何使用 ObjectId 查询文档的大小?

Object.bsonsize(document)

你所追求的函数。我正在阅读这个线程并找到一些关于如何在 php 中执行此操作的建议。最简单的方法可能是查询文档对象并在bson_encode 'd 对象上运行strlen,为您提供以字节为单位的大小。

$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"]; 
} 

PHP 示例,其中$id是文档 ID

$myDocSize = documentSize(array("_id"=>$id));