Mongoose.js 忽略子文档架构中的默认值
Mongoose.js ignoring default value in subdoc Schema
我目前正在使用 mongodb 和猫鼬编写一个网络应用程序。我定义了一个文档模式,它有一个子文档数组。我在不同的架构中定义了子文档。子文档的字段具有默认值,例如:end: {type: Date, default: Date.now}
。不幸的是,在使用某些子文档创建父文档时,仅设置了我明确设置的子文档的字段。猫鼬似乎忽略了 default
选项。
你们知道我做错了什么吗?
编辑:
employment.model.js
var Shift = require('./shift.model.js').ShiftSchema;
var EmploymentSchema = new Schema({
title: {type: String, required: true},
....
shifts: [Shift]
});
shift.model.js
var ShiftSchema = new Schema({
title: {type: String},
....
info: {type:String, default: 'Hallo'},
start: {type: Date, default: Date.now, index: true},
end: {type: Date, default: Date.now}
});
module.exports.ShiftSchema = ShiftSchema;
module.exports = mongoose.model('Shift', ShiftSchema);
None 以上 default
个值已设置。
我的 mongoose.js 版本是:~3.8.8
样本转换创建
Employment.create({
title: 'PopulateDB Employ',
start: new Date(),
customer: result.customer,
shifts: [{
title: 'Shift 1',
start: new Date()
},{
title: 'Shift 2',
start: new Date()
}]
},cb)
您正在使用下一条将模型指定为模块的唯一导出的语句覆盖 ShiftSchema
的导出。结果是 Shift
在 employment.model.js.
中变成 undefined
将该文件的第一行更改为以下内容以访问导出模型中的模式:
var Shift = require('./shift.model.js').schema;
并删除 shift.model.js.
中的 module.exports.ShiftSchema = ShiftSchema;
行
我目前正在使用 mongodb 和猫鼬编写一个网络应用程序。我定义了一个文档模式,它有一个子文档数组。我在不同的架构中定义了子文档。子文档的字段具有默认值,例如:end: {type: Date, default: Date.now}
。不幸的是,在使用某些子文档创建父文档时,仅设置了我明确设置的子文档的字段。猫鼬似乎忽略了 default
选项。
你们知道我做错了什么吗?
编辑:
employment.model.js
var Shift = require('./shift.model.js').ShiftSchema;
var EmploymentSchema = new Schema({
title: {type: String, required: true},
....
shifts: [Shift]
});
shift.model.js
var ShiftSchema = new Schema({
title: {type: String},
....
info: {type:String, default: 'Hallo'},
start: {type: Date, default: Date.now, index: true},
end: {type: Date, default: Date.now}
});
module.exports.ShiftSchema = ShiftSchema;
module.exports = mongoose.model('Shift', ShiftSchema);
None 以上 default
个值已设置。
我的 mongoose.js 版本是:~3.8.8
样本转换创建
Employment.create({
title: 'PopulateDB Employ',
start: new Date(),
customer: result.customer,
shifts: [{
title: 'Shift 1',
start: new Date()
},{
title: 'Shift 2',
start: new Date()
}]
},cb)
您正在使用下一条将模型指定为模块的唯一导出的语句覆盖 ShiftSchema
的导出。结果是 Shift
在 employment.model.js.
undefined
将该文件的第一行更改为以下内容以访问导出模型中的模式:
var Shift = require('./shift.model.js').schema;
并删除 shift.model.js.
中的module.exports.ShiftSchema = ShiftSchema;
行