如何更新猫鼬默认字符串架构属性修剪?

Pav*_*bil 3 mongoose

我希望每个字符串属性的修剪默认设置为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 }
});
Run Code Online (Sandbox Code Playgroud)

Jed*_*son 5

对架构路径重用通用配置的一种好方法是使用变量进行设置。

像这样:

var trimmedString = { type: String, trim: true };

var schema = new Schema({
  p1: trimmedString,
  p2: trimmedString,
  p3: trimmedString,
  p4: trimmedString
});
Run Code Online (Sandbox Code Playgroud)

您还可以从为您设置默认值的函数中返回定义,但允许您进行两项覆盖(或添加其他设置,如索引或默认值)。

像这样:

(使用下划线库的defaults方法

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 })
});
Run Code Online (Sandbox Code Playgroud)