我尝试在一个空字段中设置一个默认值,以便将文档保存到MongoDB中
在我的例子中,这是 Mongoose 模式
var Distribution = new Schema({
temporalCoverage: {
startDate: {type: Date, default: Date.now},
endDate: {type: Date, default: Date.now}
},
distributionText: String
});
这是要保存的文档:
"distribution": {
"temporalCoverage": {
"endDate": "",
"startDate": ""
},
"distributionText": "test"
}
在这个文档中,空字段是endDate和startDate,文档保存在mongoDB中,值为空。
"distribution": {
"temporalCoverage": {
"endDate": null,
"startDate": null
},
"distributionText": "test"
}
我想保存默认值,不能为空
如果将所需字段放入模式temporalCoverage : { startDate : { type: Date, required: true, default: Date.now }, endDate : { type: Date, required: true, default: Date.now } }
,则会得到错误验证,并且文档不会保存它。
2条答案
按热度按时间5vf7fwbs1#
您需要
setDefaultsOnInsert
选项参见http://mongoosejs.com/docs/defaults.html
nle07wnf2#
使用新日期()代替Date.now()