【发布时间】:2016-10-20 04:36:57
【问题描述】:
我们在一个 Schema 中添加了一个新字段:
第一版:
// Schema Definition Collection
const ImageSchema = new Schema({
IdUser: String,
Name: String,
Source: String
}
}, { collection: 'Image' });
const Image = mongoose.model('Image', ImageSchema);
module.exports = Image;
新版本:
// Schema Definition Collection
const ImageSchema = new Schema({
IdUser: String,
Name: String,
Source: String,
Size: String
}
}, { collection: 'Image' });
const Image = mongoose.model('Image', ImageSchema);
module.exports = Image;
稍后,在我的带有 Express 的 Api 中,我们将返回这样的架构:
exports.getImageById = co(function* (req, res) {
const image = yield Image.findById(req.params.id).exec();
res.json(image);
});
在我完成的 jQuery ajax 回调中,有时我在字段 Size 中有未定义,但我希望有其他值(例如 0kb)是该值是空的(未填充)。这可能吗?或者我是否需要检查 Size 字段 typeof 是否与“未定义”不同?
谢谢!
【问题讨论】:
-
在
res.json(image);之前添加image.Size = image.Size? image.Size : "0kb"怎么样? -
这是一个不错的选择...但是如果明天我们添加其他新字段,我们需要再次检查另一个字段...也许是自动的?这个解决方案是性能问题吗?谢谢!
-
对不起@TalhaAwan 这个解决方案不起作用......总是正确的......谢谢!
-
这只是您要找到的一个对象,因此性能不是问题。如果您不想更新数据库,这只是一种解决方法,但@andresk 的答案是我想说的更好的解决方案。
-
如果我将 .lean() 添加到我的查询中,您的解决方案还可以! ;) 也许,为了性能,检查 typeof 是否等于客户端 javascript 中的未定义...但我无法更新 3M 的文档...
标签: javascript mongoose