有一个基本的快递应用程序连接到几乎.5 GB的MongoDB数据库......当我运行时:
router.get('/', function(req, res, next) {
medical_data.find({'State':'CT'}, function(err, data) {
console.log(data)
res.render('index');
});
});
我得到一个空白数组:
[]
GET / 304 87.233 ms - -
GET /stylesheets/style.css 304 4.842 ms - -
以下是我试图查询的MongoLab条目:
{
"_id": {
"$oid": "5671dfafd7f6fdd02436682e"
},
"Street": "65 KANE ST",
"City": "WEST HARTFORD",
"State": "CT"
}
这是我的medical_data模型:
var mongoose = require('mongoose');
var medical_data_schema = new mongoose.Schema({
Street: String,
City: String,
State: String
});
var medical_data = mongoose.model('medical_data', medical_data_schema);
// Make this available to our other files
module.exports = medical_data;
为什么我得到一个空白阵列?如果我运行findOne
而不是find
,我会在控制台中获得null
我之前运行过其他成功的节点应用程序,但没有一个像这样大的数据库,所以我认为这可能是一个超时问题?我不确定,任何帮助都会很棒。
答案 0 :(得分:10)
在现有数据库之上安装Mongoose模式可能会非常棘手。例如,Mongoose将通过复制模型名称来确定集合名称;因此,在您的情况下,Mongoose将使用集合medical_datas
,我的猜测是它实际上称为medical_data
。
您可以使用https://github.com/cloudfoundry/cf-mysql-release选项指定要用于架构的集合名称:
var medical_data_schema = new mongoose.Schema({
Street : String,
City : String,
State : String
}, { collection : 'medical_data' });