如何计算mongodb集合中的文档数量

Tin*_*esh 17 mongodb

我想知道如何计算集合中的文档数量.我尝试了以下

var value = collection.count();
&&
var value = collection.find().count()
&&
var value = collection.find().dataSize()
Run Code Online (Sandbox Code Playgroud)

我总是得到方法未定义.

你能告诉我用什么方法来查找收集中的总文件.

谢谢Ganesh

Bat*_*eam 16

collection使用以下命令遍历您所在的数据库:

use databasename;
Run Code Online (Sandbox Code Playgroud)

然后调用数据库中的count()函数collection.

var value = db.collection.count();
Run Code Online (Sandbox Code Playgroud)

然后print(value)或简单地说value,会给你收集名为的文件的数量collection.

参考:http://docs.mongodb.org/v2.2/tutorial/getting-started-with-the-mongo-shell/


Rah*_*hul 11

如果您想要集合中的文档数,请使用count返回Promise 的方法.这是一个例子:

let coll = db.collection('collection_name');
coll.count().then((count) => {
    console.log(count);
});
Run Code Online (Sandbox Code Playgroud)

这假设您正在使用Mongo 3.


小智 6

v4.0.3开始,您可以使用它来获得更好的性能:

db.collection.countDocuments()
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这仍然不是一个高性能操作。CountDocuments 执行完整的集合扫描,并且是对大型集合的昂贵查询,可能会导致潜在的巨大 I/O 峰值。 (2认同)

p u*_*ran 5

在单行中执行 Mongo shell 命令以获得更好的结果。

获取 mongodb 中所有文档的计数

var 文档计数 = 0; db.getCollectionNames().forEach(function(collection) { documentCount++; }); print("可用文档数:"+ documentCount);

输出: Available Documents count: 9

获取集合中文档结果的所有计数

db.getCollectionNames().forEach(function(collection) { resultCount = db[collection].count(); print("" + collection + "的结果计数: "+ resultCount); });

输出:

Results count for ADDRESS: 250 
Results count for APPLICATION_DEVELOPER: 950
Results count for COUNTRY: 10
Results count for DATABASE_DEVELOPER: 1
Results count for EMPLOYEE: 4500
Results count for FULL_STACK_DEVELOPER: 2000
Results count for PHONE_NUMBER: 110
Results count for STATE: 0
Results count for QA_DEVELOPER: 100
Run Code Online (Sandbox Code Playgroud)

获取集合中文档的所有 dataSize

db.getCollectionNames().forEach(function(collection) { size = db[collection].dataSize(); print("dataSize for " + collection + ":"+ size); });

输出:

dataSize for ADDRESS: 250 
dataSize for APPLICATION_DEVELOPER: 950
dataSize for COUNTRY: 10
dataSize for DATABASE_DEVELOPER: 1
dataSize for EMPLOYEE: 4500
dataSize for FULL_STACK_DEVELOPER: 2000
dataSize for PHONE_NUMBER: 110
dataSize for STATE: 0
dataSize for QA_DEVELOPER: 100
Run Code Online (Sandbox Code Playgroud)