Javascript 我需要以db(mongodb)格式获取文档数量
我需要以db(mongodb)格式获取文档量。我试着像这样将这个值输入我的var:Javascript 我需要以db(mongodb)格式获取文档数量,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我需要以db(mongodb)格式获取文档量。我试着像这样将这个值输入我的var: var unique = collection.find({email: email}).count(); var unique = collection.find({email: email}).toArray(); unique = unique.length; 就像这样: var unique = collection.find({email: email}).count(); var unique
var unique = collection.find({email: email}).count();
var unique = collection.find({email: email}).toArray();
unique = unique.length;
就像这样:
var unique = collection.find({email: email}).count();
var unique = collection.find({email: email}).toArray();
unique = unique.length;
但当我试图在控制台中看到这个数字时,它会显示“未定义”:/
怎么了?为我的英语学习写一篇短文
。这是
db.collection.count
。不要使用查找
返回与查询的find()匹配的文档数
收集或查看。db.collection.count()方法不执行
find()操作,但会计数并返回
与查询匹配的结果
用法示例:
const MongoClient = require('mongodb').MongoClient;
// Connection url
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'users';
// Connect using MongoClient
MongoClient.connect(url, function(err, client) {
const db = client.db(dbName);
const email = 'foo@bar.com';
const query = { email: email };
const options = {};
db.collection.count(query, options, (err, result) => {
// handle error
if (err) {
console.log(err);
}
// do something with result
console.log(result);
});
});
下面是一个基本的例子,说明了count
是如何工作的。我假设您使用的是mongodb
npm,而不是mongoose
或其他类似的mongo包装。我在项目中使用它的方法是将到mongodb的连接设置为自己的模块,以便可以与其他查询一起重用。这样,您就不必用连接包装每个查询 如果要获取集合的所有文档,请使用:
db.collection.count
如果要按字段获取集合的所有文档,请使用:
collection.find({email: email}).toArray(function (err, items) {
console.log(items.length);
})
一般函数也是如此,但是您错过了问题上的“nodejs”标记,因此这不返回结果的原因不同。另外,“计数”的问题以前也有过回答。@NeilLunn mongodb驱动程序npm中的方法与本机mongodb shell中使用的方法相同。因此,这是可行的,“方法”是,但等待“异步函数”的结果不是。这就是为什么没有。对不起,你能告诉我如何等待异步函数的结果吗?@YakutD我在上面提供了一个例子,但我不能在函数外使用这个数字:(@YakutD当然不能,是异步函数