Mongoose查询不返回值

时间:2017-09-26 10:25:18

标签: node.js mongodb mongoose

我有一个名为plotCasts的CosmosDB集合,其中包含如下所示的对象:

window

我有以下Mongoose架构:

{
    ...
    "owner" : "winery",
    "grower" : "Bill Jones",
    ...
}

但是,当我使用下面的查询查询数据库时,我得到一个结果的空数组。知道为什么吗?

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const plotCastSchema = new Schema({
    owner: String,
    grower: String,
   ...
});

const ModelClass = mongoose.model('plotCast', plotCastSchema);

module.exports = ModelClass;

2 个答案:

答案 0 :(得分:2)

好的,你为你的模型plotCast命名,但你的收藏是plotCasts。

您可以这样强制收集名称:

const plotCastSchema = new Schema({
    owner: String,
    grower: String,
    ...
}, { collection: 'plotCasts' });

或者,只需使用集合名称作为第一个参数在mongoose中定义模型,这样:

const ModelClass = mongoose.model('plotCasts', plotCastSchema);

如果有,请告诉我:))

答案 1 :(得分:1)

问题是命名db总是以复数形式保存模式,所以它应该如下所示

PlotCasts.find({ owner: 'winery' }).lean().exec(function(err, results) {
            if (err) {
                res.send(err);
            } else if (!results) {
                res.send(null);
            } else {
                res.send(results);
            }
        });