如果find中不存在Mongoose默认值

时间:2016-10-19 20:00:09

标签: javascript mongoose

我们在一个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;

后来,在我的Api with Express中,我们将返回这样的架构:

exports.getImageById = co(function* (req, res) {

  const image = yield Image.findById(req.params.id).exec();
  res.json(image);

});

在我的jQuery ajax回调中,有时我在字段大小中有未定义,但我想要其他值(例如0kb)是值为空(未填充)。这可能吗?或者我是否需要检查尺寸字段 typeof 是否与“undefined”不同?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在Size字段中添加default值:

const ImageSchema = new Schema({
    IdUser: String,
    Name: String,
    Source: {type: String, default: '0kb'}        
    }
}, { collection: 'Image' });

这样,所有添加了大小的新文档都将具有此默认值。对于已经存在的那些,您可以更新数据库。