Mongoose嵌套文档返回undefined

时间:2014-11-10 09:40:41

标签: node.js express mongoose

我对Mongoose有这样的问题:

MongoDB中的对象

{
  _id:1928319237192387,
  componists:
    {
       name:'George Enescu'
    }
}

猫鼬查询

var find = function(req,res,next){

return IP.findById(req.params.id, function(err, artist) {

  if(!artist) {
    res.status(404).send({
      status: 'Not Found'
    });
  } else if (!err) {
    console.log(JSON.stringify(artist.componists.name));
  }
}

输出:

undefined

预期产出:

George Enescu

但是,记录artist.componists有效,返回{name:'George Enescu'}

1 个答案:

答案 0 :(得分:0)

已发现错误。我必须确保在艺术家Schema中定义正确的类型。

var ArtistSchema = mongoose.Schema({

    componists: {type:String}
});

我最初将类型设置为type:Number,返回undefined

Virtual + Schemaless = Bug?

但是,我也注意到如果我将架构定义为Mixed {},那么虚拟机将无法正常工作。