Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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
Javascript Nodejs mongodb获取文档大小而不实际获取光标_Javascript_Node.js_Mongodb - Fatal编程技术网

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方法的执行将返回数百万个文档,我不能这样做…我想知道这如何帮助我在不获取文档的情况下获取文档的大小?我认为没有其他方法可以获取大小,但现在您编辑的答案返回所有集合的存储大小,我需要特定的光标大小。我已经想过,谢谢您,但如果用户使用投影,它会计算出非常错误的值