我是nodejs.i的新手已经有一个名为aqi的数据库,其集合名称为pln。我试图在网页上显示集合中的所有记录,但是mongoose总是返回空数组。 我已经用其他dbs测试了它但我可以从它们获取数据但是对于pln mongoose总是返回空数组。 如果有人能帮助我,我真的很感激。 这是我的架构
var Pln = new Schema({
latit : Number,
longit : Number,
timestmp : String,
co : Number,
smoke : Number,
O3 : Number,
humidity : Number,
temperature: Number,
co2 : Number,
dust : String
});
var plnModel = mongoose.model('pln', Pln);
这是我的路线。
app.get('/', function(req, res) {
res.contentType('application/json');
plnModel.find({}, function(err, pln) {
if (pln != null) {
console.log('Found the User:' + pln.latit);
res.send(JSON.stringify(pln));
}
});
});
答案 0 :(得分:3)
如果您以这种方式定义模型:mongoose.model('pln', Pln)
,那么您的集合必须被命名为'plns'
(=您的模型名称+ s)
如果情况并非如此,那么您必须告诉Mongoose您有自定义集合名称(在您的情况下,根据您的评论,'pln'
没有s),使用:
mongoose.model('pln', Pln, 'pln')
,第三个参数是你的收藏品的真实姓名。
看看这段代码:
app.get('/', function(req, res) {
plnModel.find({}, function(err, pln) {
if(err) return res.status(500).json(err);
console.log('Found Users :', pln);
res.status(200).json(pln);
});
});