Я хочу отслеживать количество документов, которые у меня есть в коллекции на сервере node.js, используя драйвер mongodb. Я могу правильно вставлять, удалять и обновлять, но когда я пытаюсь подсчитать, он работает, пока я не попытаюсь сохранить это значение, момент, когда он ничего не возвращает.
Вот мой код:
var db_collection = db.collection('collection');
var countCollections = function () {
var response_count_collections = null;
db_mensajes.count(function(err,number_of_collections){
if (err){
console.log(err);
} else {
response_of_collections = number_of_collections;
console.log('Number of collections: '+number_of_collections);
}
});
return response_count_collections;
};
Он правильно регистрирует number_of_collections, но не возвращает мне правильное значение. В моем примере он возвращает null (как я определил свой var response_count_collections;
), и если я попытаюсь return number_of_collections;
в обратном вызове db_collections.count() следующим образом:
var db_collection = db.collection('collection');
var countCollections = function () {
var response_count_collections = null;
db_mensajes.count(function(err,number_of_collections){
if (err){
console.log(err);
} else {
console.log('Number of collections: '+number_of_collections);
return number_of_collections;
}
});
};
Он возвращает мне «неопределенное». Есть ли способ добиться того, чего я хочу?
dm.messages.count
может даже не выполниться. - person Edwin Dalorzo   schedule 11.08.2014return
в асинхронном программировании. Вместо этого вы должны использовать обратные вызовы. - person Edwin Dalorzo   schedule 11.08.2014