Как считать нет. документов в коллекции MongoDB с использованием Node.Js? - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть данные в MongoDB, и я хочу вернуть количество документов на основе пользовательского ввода. Но каждый раз, когда я получаю Счет: 0 , даже если у меня есть документ в базе данных, сопоставленный с пользовательским вводом.

Ниже мой код, пожалуйста, исправьте меня, что я делаю неправильно:

 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 голосов
/ 13 сентября 2018

То, что вы делаете, это смешивание 2 разных команд collect.find({Name:obj}) и collect.count().Первая команда возвращает массив документов на основе вашего запроса, а вторая - общее количество документов в этой конкретной коллекции и not количество ваших запрашиваемых документов.То, к чему вы стремитесь, может быть просто достигнуто:

collect.find({Name:obj}).then((docs)=>{
  console.log("Count:" docs.length);
}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...