【发布时间】:2016-04-18 10:59:54
【问题描述】:
我正在使用 db.coll.findOne 获取文档。我想使用只有 mongo-native 驱动程序的 nodejs 来获取文档的大小(以字节为单位)。这可能吗?
【问题讨论】:
-
"Object.bsonsize" 仅在 mongoshell 中执行我需要在 node.js 应用程序中获取文档的大小
我正在使用 db.coll.findOne 获取文档。我想使用只有 mongo-native 驱动程序的 nodejs 来获取文档的大小(以字节为单位)。这可能吗?
【问题讨论】:
可以使用BSON(依赖于mongodb驱动):
var bson = require("bson");
var BSON = new bson.BSONPure.BSON();
db.coll.findOne(query).then(function(err, doc) {
var size = BSON.calculateObjectSize(doc);
});
【讨论】:
Object.bsonsize() 返回存储文档的真实大小,calculateObjectSize() 只会尝试计算它(名称是一个很好的指标:p)所以任何事情都可能导致不同的计算大小。
new bson.BSON() 才能正常工作。我猜 api 自 2013 年以来发生了变化。