是否可以禁用 Mongoose SchemaTypes 的自动类型转换?
Posted
技术标签:
【中文标题】是否可以禁用 Mongoose SchemaTypes 的自动类型转换?【英文标题】:Is it possible to disable automatic type casting for Mongoose SchemaTypes? 【发布时间】:2018-05-07 22:25:30 【问题描述】:对于具有此 Schema 的模型...
name: type: String
...以下自动将提供的值转换为字符串,而不是强制类型:
document.name = 2;
document.validate(err =>
// Err is null, document.name === '2'
)
有没有一种简单的方法可以禁用这种行为?
【问题讨论】:
我认为不可能,请查看post 您应该能够使用覆盖默认转换行为的custom string type 来完成此操作。 【参考方案1】:您可以在 find/findOne 查询中使用lean()
方法。
lean()
将删除 mongoose 模式的所有影响,即它将返回保存在 MongoDB 中的数据,无需任何类型转换。
注意:- 使用lean()
后,您将无法调用更新或保存返回的数据。
此外,这将提高您的查询性能。
例子
Model.find().lean().exec((err, result) =>
console.log(result); //data without any typecasting
/*some operations on result*/
result.save(); // this will not work
);
【讨论】:
【参考方案2】:以防万一其他人偶然发现这一点,看起来猫鼬会根据this issue 支持这一点。
【讨论】:
以上是关于是否可以禁用 Mongoose SchemaTypes 的自动类型转换?的主要内容,如果未能解决你的问题,请参考以下文章