すべてのフィールド プロパティはschema.paths[attribute]
またはにschema.path(attribute)
あります。
適切な方法の 1 つ: フィールドが必須ではない場合を定義し、
Schema = mongoose.Schema;
var Myschema = new Schema({
name : { type:String },
type : { type:String, required:false }
})
デフォルトでそれらをすべて必須にします:
function AllFieldsRequiredByDefautlt(schema) {
for (var i in schema.paths) {
var attribute = schema.paths[i]
if (attribute.isRequired == undefined) {
attribute.required(true);
}
}
}
AllFieldsRequiredByDefautlt(Myschema)
アンダースコアの方法:
_=require('underscore')
_.each(_.keys(schema.paths), function (attr) {
if (schema.path(attr).isRequired == undefined) {
schema.path(attr).required(true);
}
})
試して :
MyTable = mongoose.model('Myschema', Myschema);
t = new MyTable()
t.save()