MongoDB查询返回空数组

有一个基本的快速应用程序将连接到几乎0.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" } 

这是我的医疗数据模型:

 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' });