そのフィールドに次のスキーマを持つ配列フィールドがあります。
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ドキュメントで空の配列やオブジェクトが意図されている場合がたくさんあります。
同意しました、私たちはこれにもつまずきました。
私たちにとってrequired: true
想定される動作は、少なくとも1つの要素を必要とする配列ではなく、配列の存在でした。
必須の配列フィールドは空の配列を受け入れる必要があることに同意します。 昨日マングースに問題が発生するまで、私はいつもこのように考えてきました。
#5139を支持してこれを閉じるつもりです。 5.0でこの動作を変更します。
最も参考になるコメント
必須の配列フィールドは空の配列を受け入れる必要があることに同意します。 昨日マングースに問題が発生するまで、私はいつもこのように考えてきました。