mongodb - MongoDB countDocuments() 正在返回一个对象,而不是一个数字
问题描述
我开始学习 mongoose/MongoDB 聚合函数,并且遇到了一些基本的困难。例如,我正在尝试执行以下操作:
var myModels= require('./models/myModel');
var myCount = myModels.countDocuments({userID: "A"});
console.log(myCount );
我只想计算用户 ID 为“A”的文档数量,但是当它打印到控制台时,它作为一个整体对象打印,而不仅仅是一个数字计数。我已经在这里阅读了答案,但我仍然无法解决这个问题(另外,与那个问题不同,有没有一种方法可以直接返回计数,而不必预定义变量并将其设置在回调函数中?)
我正在尝试按照此处的指南进行操作,但看不到哪里出错了。
解决方案
这是因为的返回值countDocuments
是一个承诺,而不是一个数字。
您要么需要等待该 Promise,要么使用如下回调语法:
var myModels= require('./models/myModel');
// this required the code to be inside an async function
var myCount = await myModels.countDocuments({userID: "A"});
console.log(myCount);
或者:
var myModels= require('./models/myModel');
myModels.countDocuments({userID: "A"})
.then((myCount) =>{console.log(myCount);});
推荐阅读
- python - 在python中从txt文件中绘制选定的值
- ionic-framework - Ionic 3,多次触发鼠标点击 - 已修复
- javascript - 将学生添加到虚拟教室
- scala - 如何使用火花将scala对象存储到cassandra表上
- javascript - react js中的状态变量有问题。无法将变量的值更新为 true
- rust - 实现 std Trait 时如何为生命周期参数设置适当的生命周期
- android - 隐式启动 JobIntentService
- boomi - 字符串索引超出范围:-1 in dell boomi
- python - TF服务出错:加载包'@org_tensorflow//tensorflow/python/keras'时出错:
- android - 从列表视图中删除项目