有一个基本的快速应用程序,连接到几乎.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
控制台
我以前运行过其他成功的节点应用程序,但没有一个像这样大的数据库,所以我认为这可能是一个超时问题?我不确定,任何帮助都会很棒.
在现有数据库之上安装Mongoose模式可能很棘手.例如,Mongoose将通过复制模型名称来确定集合名称; 所以在你的情况下,Mongoose将使用该集合medical_datas
,我的猜测是它实际上被调用medical_data
.
您可以使用以下collection
选项指定要用于架构的集合名称:
var medical_data_schema = new mongoose.Schema({ Street : String, City : String, State : String }, { collection : 'medical_data' });