Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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 我需要以db(mongodb)格式获取文档数量_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 我需要以db(mongodb)格式获取文档数量

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

我需要以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 = 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当然不能,是异步函数