При запуске следующего кода в NodeJS я получаю сообщение об ошибке MongoError: Connection Closed By Application. Я попытался разрешить это, но не смог все время. Мне нужна чья-то помощь ...MongoError: соединение закрыто приложением в драйвере MongoDB
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/weather', function(err, db) {
if(err) throw err;
var data = db.collection('data');
var options = { 'sort' : [['State', 1], ['Temperature', -1]] };
var cursor = data.find({}, {}, options);
var firstState = '';
var currentState='';
var previousState='';
var previousRecord='';
cursor.each(function(err, doc) {
if(err) throw err;
if(doc == null) {
return db.close();
}
currentState= doc['State'];
previousState = previousRecord['State'];
if(previousState === undefined) {
console.dir(currentState);
firstState= doc['State'];
db.collection('data').update({'_id' : doc['_id']}, {$set :{'month_high' : true}}, {'upsert' : true}, function(err, upserted){
if(err) throw err;
console.dir("Successfully upserted "+upserted + " document!");
});
} else if(currentState !=previousState){
if (firstState!=currentState){
console.dir(previousState);
db.collection('data').update({'_id' : previousRecord['_id']}, {$set :{'month_high' : true}}, {'upsert' : true}, function(err, upserted){
if(err) throw err;
console.dir("Successfully upserted "+upserted + " document!");
});
}
}
previousRecord = doc;
});
});
Я хотел бы поблагодарить вас за ваше драгоценное время и помощь, но я получаю сообщение об ошибке при запуске программы, которую вы мне дали. Можете ли вы протестировать его там и повторно отправить его снова. Могут быть некоторые скобки или какая-то другая проблема. Я попытался понять это сам, но не мог из-за недостатка знаний в потоковой обработке. С нетерпением жду Вашего ответа. – Simant
@DPBhatt Какая ошибка? Я на самом деле ничего не сделал, кроме как вырезать и вставлять бит вашего кода в правильные разделы и удалять дублирование кода. Поэтому я не пишу вашу программу, просто показываю, как правильно структурировать и уважать, ожидая завершения обратных вызовов. Любые ошибки - это ошибка вашей собственной реализованной логики. Который я действительно не изменил. –
«@Blakes Seven» Я хотел бы поблагодарить вас за концепцию потока, которую я совершенно не знал в Nodejs. Я переписал программу, чтобы исправить некоторую логику, которая была неправильной в моей стороне. Еще одна проблема в функции обратного вызова cursor.on («data», function (data) {. Вы использовали здесь данные, но в программе, ссылающейся на doc.State, что является второстепенным я заметил это при переписывании программы. логика тоже. Я отправляю правильную логику. Еще раз спасибо за помощь, которая была действительно много. – Simant