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

情况如下:

  • 在Node.js中使用Mongoose.js
  • 执行查询,如Model.find().where('something', 'value').exec(callback)
  • 您在callback收到一组文档

我如何确定磁盘上这些文件的大小?

大概是好的,对我来说至less。

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

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

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