我在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
答案 0 :(得分:0)
您正在做的是混合使用两个不同的命令collect.find({Name:obj})
和collect.count()
。
第一个命令根据您的查询返回文档数组,第二个命令为您提供该特定集合中文档的总数,以及not
查询的文档数。
您的目标可以通过以下方式轻松实现:
collect.find({Name:obj}).then((docs)=>{
console.log("Count:" docs.length);
});