2
我有一个奇怪的问题与MongoDB。我的数据库集合正在关闭,我认为它是应该做的(我从mongo样板文件继续),但是我没有看到为什么文档是空值的原因。我已经按照我能想到的方式检查过了,但我不太了解游标对象。它似乎给了我一堆本地mongo属性(它看起来像函数,即每个,toArray等),所以它看起来是正确的,但它不是一个具有我可以看到的数据字段的常规对象。NodeJS错误与股票Mongodb适配器:连接关闭应用程序
它碰到if if(docs == null)后阻塞,连接会关闭,并且不会执行else if中的每个块。
理想情况下,如果有一种方法可以帮助排除故障或弄清楚如何使这个执行很好。
更多的背景: 在蒙戈外壳,我可以问 使用天气//没有问题 和获取数据对象,它是3000条记录与空的查找的结果();
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/weather', function(err, db) {
if(err){
console.log("line 7" + err);
}
var query = {};
var projection = { 'State' : 1, 'Temperature' : 1 };
var cursor = db.collection('data').find(query, projection);
console.log("cursor" + cursor); // [object Object]
var state = '';
var operator = {'$set' : {'month_high' : true } };
cursor.each(function(err, doc) {
if (err) throw err;
if (doc == null) {
console.log("docs have value:" + doc); //NULL VALUE so will close on line 23
return db.close();
} else if (doc.State !== state) {
// first record for each state is the high temp one
state = doc.State;
db.collection('data').update({'_id':doc._id}, operator, function(err, updated) {
if (err) console.log(err);
// return db.close(); ?
});
}
});
});
{ [MongoError: Connection Closed By Application] name: 'MongoError' } //doh
{ [MongoError: Connection Closed By Application] name: 'MongoError' } //doh
{ [MongoError: Connection Closed By Application] name: 'MongoError' } //doh