我想让每个字符串属性默认设置为 true 。有办法吗?
?? mongoose.Schema.String -> default { trim: true }
var schema = new Schema({
p1: { type: String },
p2: { type: String, trim: true }
p3: { type: String, trim: true }
p4: { type: String }
});
我想让每个字符串属性默认设置为 true 。有办法吗?
?? mongoose.Schema.String -> default { trim: true }
var schema = new Schema({
p1: { type: String },
p2: { type: String, trim: true }
p3: { type: String, trim: true }
p4: { type: String }
});
为模式路径重用通用配置的一个好方法是使用变量来设置它们。
像这样:
var trimmedString = { type: String, trim: true };
var schema = new Schema({
p1: trimmedString,
p2: trimmedString,
p3: trimmedString,
p4: trimmedString
});
您还可以从为您设置默认值的函数返回定义,但允许您进行两个覆盖(或添加其他设置,如索引或默认值)。
像这样:
(使用下划线库的默认方法)
var _ = require('underscore');
var stringType = function(ops) {
return _.defaults(ops || {}, {
type: String,
trim: true
});
}
var schema = new Schema({
p1: stringType(),
p2: stringType({ index: true }),
p3: stringType({ default: "something" }),
p4: stringType({ trim: false })
});
您可以添加一个预处理函数,如下所示(MySchema 是您调用架构的名称):
MySchema.pre('save', function(next) {
for (var fld in this) {
this[fld] = trim(this[fld]);
}
next();
});
那应该这样做。