我开始学习猫鼬/MongoDB 聚合函数,但遇到了一些基本困难。例如,我正在尝试执行以下操作:
var myModels= require('./models/myModel');
var myCount = myModels.countDocuments({userID: "A"});
console.log(myCount );
Run Code Online (Sandbox Code Playgroud)
我只想计算用户 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);
Run Code Online (Sandbox Code Playgroud)
或者:
var myModels= require('./models/myModel');
myModels.countDocuments({userID: "A"})
.then((myCount) =>{console.log(myCount);});
Run Code Online (Sandbox Code Playgroud)