javascript - 猫鼬:如何仅在保存数据时设置默认值(而不是在获取数据时)?
问题描述
假设我有一个包含默认值的字段,我只想在 save() 数据时使用此默认值,但如果我获取的数据不包含所需的数据,我不想看到默认值场地
//ignore any syntax or any other errors
let dataSchema = new mongoose.Schema({
createdAt: {
type: Date,
default: Date.now
},
....
})
let dataSchemaWithoutDefault = new mongoose.Schema({
createdAt: Date
....
})
let dataModelWithoutDefault = mongoose.model("data", dataSchemaWithoutDefault)
let record = dataModelWithoutDefault.save() //createdAt doesn't present
//let's fetch data but with the default value enabled
let dataModel = mongoose.model("data", dataSchema)
dataModel.find().then(data => console.log(data))
//this with console data with default values, but I need a typical copy from the real collection
//[{createaAt:2018-11-12T06:54:50.119Z},...]
解决方案
在保存方法中使用回调函数
dataModelWithoutDefault.save(function (err, schema) {
if (err) {
response.status(500).send(err);
} else {
//use your default value
}
})
推荐阅读
- php - 如何在 Mac 上卸载 XAMPP?
- wso2 - 进入内部 jdbc 用户存储 wso2 5.10.0 Pirmary 的配置文件时出错,具有辅助 Active Directory 存储
- javascript - 将 audioContext 转换回 Buffers
- angular - 如何使用 Angular 在 Heroku 上运行预渲染文件夹
- android - 从字符串中获取图像源并在recyclerview中显示它们?
- c# - 解析 JSON 并应用过滤器
- android - 创建recyclerview时如何解决这个问题?
- java - Android:如何将 Google 地图添加到 ViewPager?
- go - 为什么在 Go 中反映错误类型的名称(或包路径)会导致恐慌?
- javascript - 尝试导入错误:“./components”不包含默认导出(导入为“应用程序”)