Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 是否可以禁用Mongoose模式类型的自动类型转换?_Node.js_Validation_Mongoose_Schema - Fatal编程技术网

Node.js 是否可以禁用Mongoose模式类型的自动类型转换?

Node.js 是否可以禁用Mongoose模式类型的自动类型转换?,node.js,validation,mongoose,schema,Node.js,Validation,Mongoose,Schema,对于具有此架构的模型 { 名称:{type:String} } …以下操作将自动将提供的值强制转换为字符串,而不是强制执行类型: document.name=2; document.validate(err=>{ //错误为空,document.name=='2' }) 有没有一种简单的方法来禁用此行为?您可以在find/findOne查询中使用lean()方法。 lean()将消除mongoose模式的所有影响,即它将返回保存在MongoDB中的数据,而不进行任何类型转换 注意:-使用lean

对于具有此架构的模型

{
名称:{type:String}
}

…以下操作将自动将提供的值强制转换为字符串,而不是强制执行类型:

document.name=2;
document.validate(err=>{
//错误为空,document.name=='2'
})

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

您可以在find/findOne查询中使用
lean()
方法。
lean()
将消除mongoose模式的所有影响,即它将返回保存在MongoDB中的数据,而不进行任何类型转换

注意:-使用
lean()
后,您将无法对返回的数据调用update或save。 此外,这将提高查询性能

范例

Model.find().lean().exec((err, result) => {
    console.log(result);    //data without any typecasting
    /*some operations on result*/
    result.save(); // this will not work  
});

以防万一其他人偶然发现了这一点,看起来猫鼬将根据支持这一点。

我认为这是不可能的,请检查这一点,您应该能够通过覆盖默认施法行为的。