Javascript Nodejs mongodb获取文档大小而不实际获取光标
我的问题是,如何在不实际获取的情况下获取Javascript Nodejs mongodb获取文档大小而不实际获取光标,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我的问题是,如何在不实际获取的情况下获取光标大小(以KBs为单位) 我已经研究了很多问题,例如,但我不想获取查询结果来了解它有多少KB 我只想要这样的东西: var MongoClient = require('mongodb').MongoClient, test = require('assert'); MongoClient.connect('mongodb://localhost:27017/test', function(err, db) { var collection =
光标
大小(以KBs为单位)
我已经研究了很多问题,例如,但我不想获取查询结果来了解它有多少KB
我只想要这样的东西:
var MongoClient = require('mongodb').MongoClient,
test = require('assert');
MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
var collection = db.collection('simple_query');
// Insert a bunch of documents for the testing
collection.insertMany([{a:1}, {a:2}, {a:3}], {w:1}, function(err, result) {
test.equal(null, err);
collection.find(/**SOME QUERY*/).size(function(err, SIZE) {
test.equal(null, err);
test.equal(32111351, SIZE); // in bytes or kilobytes whatever
db.close();
});
});
});
像这样的
var avgSize = db.collectionName.stats().avgObjSize;
// ...
collection.count(/* some query */, function(err, count) {
var approximateSize = count*avgSize; // This could work for simple database models
}
我知道它并不完美,但这是我找到的最好的方法。我想知道MongoDB是否在内部跟踪此类信息(假设您希望检索查询结果的大小,而不是整个集合的大小)。我认为没有内置方法来获取集群的大小(以字节为单位)。无论如何,在文档中找不到任何内容。我认为您必须迭代返回的文档。但是如果find方法的执行将返回数百万个文档,我不能这样做…我想知道这如何帮助我在不获取文档的情况下获取文档的大小?我认为没有其他方法可以获取大小,但现在您编辑的答案返回所有集合的存储大小,我需要特定的光标大小。我已经想过,谢谢您,但如果用户使用投影,它会计算出非常错误的值