如何在猫鼬中更改枚举值

时间:2020-10-29 11:14:27

标签: mongodb mongoose mongoose-schema

我的猫鼬集合中有一个枚举属性,其初始定义为box-shadow,我需要更改它以向枚举添加附加动作const actions = ['a', 'b', 'c'],但是当我尝试使用附加值时即const actions = ['a', 'b', 'c', 'd', 'e']我收到验证错误action = 'e'

我的问题是我如何在已经在生产中的猫鼬的mongo集合中为枚举添加附加值。

"Model validation failed: action: 'e' is not a valid enum value for path 'action'."

1 个答案:

答案 0 :(得分:1)

由于当前数据与以前的数据不一致,Mongoose会尝试使用新数据来验证当前数据(旧模式),即使您不进行任何修改并导致验证错误。就我而言,我强制Mongoose通过使用标志validateBeforeSave保存新模式。

例如:

const savedProduct = await currentProduct.save({ validateBeforeSave: false });