MongoDB countDocuments () возвращает объект, а не число - PullRequest
0 голосов
/ 31 января 2020

Я начинаю узнавать о функциях агрегации mongoose / MongoDB, и у меня возникают некоторые c трудности. Например, я пытаюсь сделать следующее:

var myModels= require('./models/myModel');
var myCount = myModels.countDocuments({userID: "A"});
console.log(myCount );

Я просто хочу посчитать количество документов с идентификатором пользователя "A", но когда это выводится на консоль, он печатает как целый объект вместо просто числового подсчета. Я прочитал ответ здесь , но я все еще не могу решить эту проблему (кроме того, есть ли способ, в отличие от этого вопроса, вернуть счет непосредственно, вместо того, чтобы предопределять переменную и установить его в функцию обратного вызова?)

Я пытаюсь следовать руководству здесь и не вижу, где я иду не так.

1 Ответ

2 голосов
/ 31 января 2020

Это потому, что возвращаемое значение countDocuments является обещанием , а не числом.

Вам нужно подождать это обещание или использовать синтаксис обратного вызова, например:

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);}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...