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

问题描述 投票:0回答:9

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

var value = collection.count();
&&
var value = collection.find().count()
&&
var value = collection.find().dataSize()

我总是得到未定义的方法。

你能告诉我用什么方法来查找集合中的总文档吗?

mongodb
9个回答
33
投票

使用以下命令遍历到您的

collection
所在的数据库:

use databasename;

然后在数据库中的

count()
上调用
collection
函数。

var value = db.collection.count();

然后

print(value)
或简单地
value
,将为您提供名为
collection
的集合中的文档计数。

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


24
投票

如果您想要集合中的文档数量,请使用

count
方法,该方法返回 Promise。这是一个例子:

let coll = db.collection('collection_name');
coll.count().then((count) => {
    console.log(count);
});

这假设您使用的是 Mongo 3。

编辑:在 4.0.3 版本中,

count
已弃用。使用 countDocument 来实现目标。


13
投票

v4.0.3 起,您可以使用以获得更好的性能:

db.collection.countDocuments()

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

获取集合中文档的所有数据大小

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

3
投票

您可以使用

      Model.count({email: '[email protected]'}, function (err, count) {
      console.log(count);
    });

2
投票

db.collection('collection-name').count()
现已弃用。 我们现在应该使用
countDocuments()
estimatedDocumentCount()
,而不是 count()。 这是一个例子:

`db.collection('collection-name').countDocuments().then((docs) =>{
console.log('Number of documents are', docs);
    };`

要了解更多信息,请阅读文档:

https://docs.mongodb.com/manual/reference/method/db.collection.countDocuments/

https://docs.mongodb.com/manual/reference/method/db.collection.estimatedDocumentCount/


1
投票

通过 MongoDB Console 您可以查看集合中的文档数量。

1.转到 mongoDB 控制台并发出命令“use databasename”。 要启动控制台,请转到安装 MongoDB 的 bin 文件夹,然后单击 mongo.exe 启动 mongoDB 控制台 例如,如果数据库是 myDB,则命令是“use myDB

2.执行这个命令db.collection.count() 集合就像 RDBMS 中的表。 例如,如果您的集合名称是 myCollection 那么命令是 db.myCollection.count();

此命令将在控制台中打印集合的大小。


0
投票
db.collection.count(function(err,countData){

//you will get the count of number of documents in mongodb collection in the variable 
countdata

});

在集合位置给出您的 mongodb 集合名称


0
投票

要计算 MongoDB 集合中的文档数量,请使用:

准确计数:

var value = db.getCollection("CollectionName").count();
© www.soinside.com 2019 - 2024. All rights reserved.