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想定される動作は、少なくとも1つの要素を必要とする配列ではなく、配列の存在でした。

必須の配列フィールドは空の配列を受け入れる必要があることに同意します。 昨日マングースに問題が発生するまで、私はいつもこのように考えてきました。

#5139を支持してこれを閉じるつもりです。 5.0でこの動作を変更します。

このページは役に立ちましたか?
0 / 5 - 0 評価