Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Про collection.count() (https://javascript.ru/forum/node-js-io-js/60744-pro-collection-count.html)

scorpion95 17.01.2016 22:37

Про collection.count()
 
Когда прописываю в консоли mongo это, то вижу нормальное число, а когда в коде сервера

var numberLines = db.collection("users").find().count();
console.log(numberLines);


То выдает Promise ( {pending} )

Почему так? Как получить в коде сервака это число?

Safort 17.01.2016 23:00

Потому, что действия в консоли выполняются синхронно и в ней можно позволить запросу заблочить поток, а node.js это асинхронная среда, в ней такое не желательно, по этому объект запроса в твоём случае возвращает Обещание

Safort 17.01.2016 23:04

Кстати, ты используешь нативный драйвер для монго? На сколько я помню, он принимал коллбэк, а не возвращал Обещание.

scorpion95 17.01.2016 23:36

Цитата:

Сообщение от Safort (Сообщение 404105)
Потому, что действия в консоли выполняются синхронно и в ней можно позволить запросу заблочить поток, а node.js это асинхронная среда, в ней такое не желательно, по этому объект запроса в твоём случае возвращает Обещание

Можешь навести простенький пример, как это правильно делать?

agsh 18.01.2016 16:40

Цитата:

Сообщение от Safort (Сообщение 404106)
Кстати, ты используешь нативный драйвер для монго? На сколько я помню, он принимал коллбэк, а не возвращал Обещание.

Начиная с (по-моему) второй версии драйвера можно callback не указывать, тогда возвращается promise


Часовой пояс GMT +3, время: 07:35.