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属性,这意味着它存在。

我的模式没有特别的东西,所以我不明白这里会发生什么。


当您没有将该字段添加到模式时,您会看到此内容。

image添加到您的模式,它应该工作:

image: String

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


尝试使用如下括号符号:

doc['image']

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

链接地址: http://www.djcxy.com/p/77879.html

上一篇: Mongoose returns undefined for an existing field

下一篇: Using Dropzone.js inside Bootstrap modal