【问题标题】:Is it possible to disable automatic type casting for Mongoose SchemaTypes?是否可以禁用 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 来完成此操作。

标签: node.js validation mongoose schema


【解决方案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 支持这一点。

    【讨论】:

      猜你喜欢
      • 2014-11-18
      • 2022-01-01
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      • 2011-12-29
      • 2013-05-29
      相关资源
      最近更新 更多