我想知道如何计算集合中文档的数量。我尝试了以下方法
var value = collection.count();
&&
var value = collection.find().count()
&&
var value = collection.find().dataSize()
我总是得到方法未定义的错误。
您能告诉我在集合中查找文档总数要使用的方法吗?
我想知道如何计算集合中文档的数量。我尝试了以下方法
var value = collection.count();
&&
var value = collection.find().count()
&&
var value = collection.find().dataSize()
我总是得到方法未定义的错误。
您能告诉我在集合中查找文档总数要使用的方法吗?
使用以下命令遍历到包含您的collection
的数据库:
use databasename;
然后在数据库中调用collection
上的count()
函数。
var value = db.collection.count();
然后print(value)
或仅使用 value
,将为您提供名为collection
的集合中文档的数量。
参考:http://docs.mongodb.org/v2.2/tutorial/getting-started-with-the-mongo-shell/
如果您想获取集合中文档的数量,则可以使用count
方法,它返回一个Promise对象。以下是一个示例:
let coll = db.collection('collection_name');
coll.count().then((count) => {
console.log(count);
});
这假设您正在使用Mongo 3。
编辑:在4.0.3版本中,count
已弃用。 使用countDocuments 来实现目标。
自从v4.0.3版本以来,您可以使用以下方法来提高性能:
db.collection.countDocuments()
通过单行执行Mongo shell命令可以获得更好的结果。
获取mongodb中所有文档数量的方法:
var documentCount = 0; db.getCollectionNames().forEach(function(collection) { documentCount++; }); print("可用的文档数: "+ documentCount);
输出结果: 可用的文档数: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("集合 " + 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
简单地说,您可以使用
Model.count({email: 'xyz@gmail.com'}, function (err, count) {
console.log(count);
});
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/ (估计集合中的文档数量)
db.collection.count(function(err,countData){
//you will get the count of number of documents in mongodb collection in the variable
countdata
});
在代码中,将“collection”替换为您的mongodb集合名称
db.
像这样:db.collection.find().count()
- Philipp