Mongoose: 设置为空数组时,必需的数组字段会引发错误

创建于 2015-02-10  ·  3评论  ·  资料来源: Automattic/mongoose

我在该字段上有一个具有以下架构的数组字段:

parents:
    type: 'Array'
    required: true

当我尝试使用以下数据创建文档时:

data =
    parents: []

Translation.create data, (err, translations) ->
    console.log err, translations

我收到以下错误:

ValidationError: Path `parents` is required.

如果我在数组中放入一个值,它会起作用,如下所示:

data =
    parents: ['blah']

同样,如果我从架构中删除required: true ,它也会开始工作。

是否认为空数组不能满足“必需”验证的要求? 我知道它在 javascript 中是错误的,但是在很多情况下,Mongo 文档中都打算使用空数组和对象。

backwards-breaking

最有用的评论

同意必需的数组字段应接受空数组。 我一直是这样想的,直到昨天我遇到了猫鼬问题。

所有3条评论

同意,我们也被这件事绊倒了。

我们假设required: true行为是存在一个数组,而不是一个至少需要一个元素的数组。

同意必需的数组字段应接受空数组。 我一直是这样想的,直到昨天我遇到了猫鼬问题。

将关闭它以支持#5139。 将在 5.0 中更改此行为。

此页面是否有帮助?
0 / 5 - 0 等级