猫鼬总是返回空阵列?

时间:2018-03-19 13:52:24

标签: node.js mongodb mongoose-schema

我是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));
        }
    });
});

1 个答案:

答案 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);
    });
});