Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何计算mongoose查询返回的文档所使用的磁盘空间(字节)?_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 如何计算mongoose查询返回的文档所使用的磁盘空间(字节)?

Node.js 如何计算mongoose查询返回的文档所使用的磁盘空间(字节)?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,情况如下: 在Node.js中使用Mongoose.js 执行查询,如Model.find().where('something','value').exec(回调) 您将在回调中收到一个文档数组 如何确定磁盘上这些文档的大小? 至少对我来说,近似是可以的。您可以通过将查询作为精简查询执行(以获取普通JavaScript对象而不是Mongoose文档实例),然后深入到作为本机MongoDB驱动程序一部分的BSON库并调用: 它不会给你磁盘上的大小,但它应该是BSON文档大小的一个很好的近似值

情况如下:

  • 在Node.js中使用Mongoose.js
  • 执行查询,如
    Model.find().where('something','value').exec(回调)
  • 您将在
    回调中收到一个文档数组
如何确定磁盘上这些文档的大小?


至少对我来说,近似是可以的。

您可以通过将查询作为精简查询执行(以获取普通JavaScript对象而不是Mongoose文档实例),然后深入到作为本机MongoDB驱动程序一部分的BSON库并调用:


它不会给你磁盘上的大小,但它应该是BSON文档大小的一个很好的近似值。

正是我想要的。需要注意的是,这并没有考虑文档填充或2空间分配的威力
var bson = mongoose.mongo.BSON;

Model.find().where('something', 'value').lean().exec(function(err, docs) {
    var docsBsonSize = bson.calculateObjectSize(docs));
});