是否有可能为Mongoose SchemaTypes禁用自动types转换?

对于具有此架构的模型…

{ name: { type: String } }

…以下内容自动将提供的值转换为string,而不是强制执行types:

document.name = 2; document.validate(err => { // Err is null, document.name === '2' })

有没有简单的方法来禁用这种行为?

那么这里呢

 var numberSchema = new Schema({ integerOnly: { type: Number, get: v => Math.round(v), set: v => Math.round(v), alias: 'i' } }); var Number = mongoose.model('Number', numberSchema); var doc = new Number(); doc.integerOnly = 2.001; doc.integerOnly; // 2 doc.i; // 2 doc.i = 3.001; doc.integerOnly; // 3 doc.i; // 3 

你可以尝试像这样的东西:

 set: (v) => { if (typeof v !== 'string') throw new Error('zdokd'); return v; }, 
  • 如何发布和更新模式数组中的模式并打印它?
  • GraphQL – 返回计算types依赖于参数
  • 让所有的领域需要mongoose
  • 如何用2d geo索引正确定义Mongoose模式中的数组对象
  • 从两个http req获取数据并合并它们
  • foo.find(…).execFind不是函数 – mongoose模式模型
  • 节点,Mongoose,保存多层嵌套模式的问题
  • mongoosevalidation器
  • Mongoose:当文件不存在时,在必填字段中设置默认值
  • Mongoose无法读取具有复杂模式的未定义属性
  • 在mongoose进行预更新时,user.isModified不是函数