Цель: я хочу проверить, существуют ли какие-либо объекты в определенной коллекции в моем mongoDB, для которых я использую:
client.db.listCollections().toArray(function(err, collections) {
console.log(collections);
client.collection('usrs').countDocuments().then(function(result){
console.log(result);
}, function(err){
return console.log(err);
});
});
«Результат» дает 0, если я еще ничего не сохранил,И 1, если у меня есть.Который это делает.
- Теперь я создал глобальный var "counter", чтобы сохранить этот номер для последующих проверок.
- Поскольку это асинхронная функция, я создал функцию «Giveaway (result)», чтобы перехватить результат в другой функции.
- Там я попытался изменить «counter» на result.
К сожалению, когда я пытаюсь открыть console.log, счетчик не меняется.
Ниже приведен весь код.
var counter=0;
var mongoose = require("mongoose");
mongoose.connect("mongodb://"+process.env.IP+":27017/msn", function(err, client) {
if(err) {
console.log(err)
}
client.db.listCollections().toArray(function(err, collections) {
console.log(collections);
client.collection('usrs').countDocuments().then(function(result){
console.log(result); // "1"
counter=result;
console.log("c:");
console.log(counter); //"1"
giveaway(result);
}, function(err){
return console.log(err);
});
});
});
console.log(counter); //"0"
function giveaway(r)
{
console.log(typeof(r)); //"number" checked for internal peace
counter=r;
console.log(counter); //"1"
}
console.log(counter); //"0"
Спасибо.