Mongoose为现有字段返回undefined

时间:2014-03-03 05:12:47

标签: javascript mongodb mongoose

在mongoose请求之后,我有我的文档doc,这是查询的结果

以下是使用的架构

var searchSchema = new mongoose.Schema({
    original : String,
    images : [String],
    image: String
});

模特:

var searchModel = mongoose.model('Search', searchSchema);

使用的代码:

searchModel.findOne({original : input}, function (err, doc) {
    if (err) {
        console.log(err);
    }
    if (typeof doc !== "undefined") {
        console.log(doc);
                    console.log(doc.image);
    }
});

第一个console.log

{ 
    _id: 531401bf714420359fd929c9,
    image: 'http://url.com/image.jpg',
    original: 'lorem ipsum dolor sit amet' 
}

第二个返回undefined,但前一个确实显示现有的image属性,这意味着它存在。

我的架构没有什么特别之处,所以我不明白这里可能会发生什么......

4 个答案:

答案 0 :(得分:5)

如果尚未将字段添加到架构中,则会看到此内容。

image添加到您的架构中,它应该有效:

image: String

答案 1 :(得分:0)

这是因为对象的toString()方法返回_doc属性。您可以使用: 的console.log(doc._doc.image);

答案 2 :(得分:0)

我遇到了同样的错误,但是像 doc[0].image 这样访问属性可以正常工作。

答案 3 :(得分:-1)

尝试使用括号表示法:

doc['image']

如果有效,我无法向你解释原因,但也许有人可以对此有所了解?