是否有可能为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; },