我开始学习mongoose / MongoDB聚合函数,并且遇到一些基本困难。例如,我正在尝试执行以下操作:
var myModels= require('./models/myModel');
var myCount = myModels.countDocuments({userID: "A"});
console.log(myCount );
我只想计算userID为“ 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);});
谢谢,我正在尝试这个。对于第二个示例,我收到一个错误,提示await无效-应该仍然包含“ await”对吗?
没错,我忘了编辑。