带有数组的mongoose模式返回null

时间:2016-12-28 16:06:27

标签: node.js mongodb express mongoose

我的数据库中有这样的数据

[{
  "birth-date": "18/12/2010",
  "babies": [{
    "name": "James",
    "age": 8,
  }, {
    "name": "John",
    "age": 4,
  }]
}]

所以我按照下面的方式执行我的架构

var babiesSchema = new Schema({
    birth-date: Date, // tried String too
    babies: [{
        name: String,
        age: Number
    }]
});

var Babies = mongoose.model('babies', babiesSchema);

我做

Babies.find({}, function(response){
    res.json(response)
  })

我得到了null,我的架构出了什么问题?我的节点终端没有错误。

2 个答案:

答案 0 :(得分:2)

我会说您的架构没有任何问题。您只需要更仔细地阅读文档。

如果你看{4},你会发现回调应该有2个参数。第一个是错误,第二个是搜索结果。所以null意味着没有错误。我会尝试更改这样的代码:

Babies.find({}, function(err, foundBabies){
    res.json(foundBabies)
})

答案 1 :(得分:0)

试试这个:

Babies.find({}).exec(function (err, babies) {
        if (err) {
            return res.status(500).json({
                error: 'Cannot find Babies'
            });
        } else {
            res.json(babies);
        }
    });