繁体   English   中英

Mongoose 为现有字段返回 undefined

[英]Mongoose returns undefined for an existing field

在猫鼬请求之后,我有我的文档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[0].image工作正常。

尝试使用这样的括号表示法:

doc['image']

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM