如何计算不。 Node.Js在MongoDB集合中收集文档?

时间:2018-09-13 15:06:49

标签: node.js mongodb

我在MongoDB中有数据,我想根据用户输入返回文档计数。但是每次我得到 Count:0 时,即使我数据库中存在与用户输入匹配的文档。 / p>

下面是我的代码,请纠正我我做错的事情:

 const express = require('express');
 const bodyParser = require('body-parser');
 const mongoClient = require("mongodb").mongoClient;

 var app = express();
 var port = process.env.PORT || 3000;
 var url = "http://localhost:3000/";

 app.use(bodyParser.json());
 app.use(bodyParser.urlencoded({extended:true}));

 app.post('/finish',(req,res) =>{

 mongoClient.connect(url,(err,db) => {

           if(err){
              console.log("Error:" +err);
            }

          else{

             var obj = {Name:req.body.name};

             var collect = db.db("Tiffino").collection("Users"); 

             var cnt = collect.find({Name:obj}).count.then((count)=>{

                   console.log("Count:" +count);
               }); 

            }
    }); 

 });

  app.listen(port,(req,res) => {

        console.log("App is running at:" +port);
   });

输出  数:0

1 个答案:

答案 0 :(得分:0)

您正在做的是混合使用两个不同的命令collect.find({Name:obj})collect.count()。 第一个命令根据您的查询返回文档数组,第二个命令为您提供该特定集合中文档的总数,以及not查询的文档数。 您的目标可以通过以下方式轻松实现:

collect.find({Name:obj}).then((docs)=>{
  console.log("Count:" docs.length);
});