لدي حقل مصفوفة بالمخطط التالي في هذا الحقل:
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
من المخطط ، فسيبدأ العمل أيضًا.
هل المصفوفة الفارغة لا تعتبر مرضية للتحقق "المطلوب"؟ أتفهم أنه خطأ في جافا سكريبت ، ولكن هناك الكثير من الحالات التي يكون فيها المصفوفات والعناصر الفارغة مخصصة في مستندات مونجو.
متفق عليه ، لقد تعثرنا في هذا أيضًا.
كان السلوك المفترض لـ required: true
بالنسبة لنا هو وجود مصفوفة ، وليس مصفوفة تتطلب عنصرًا واحدًا على الأقل.
توافق على أن حقول الصفيف المطلوبة يجب أن تقبل المصفوفات الفارغة. لطالما فكرت في الأمر بهذه الطريقة ، حتى واجهت مشكلة مع النمس بالأمس.
سأغلق هذا لصالح # 5139. سيتم تغيير هذا السلوك في 5.0.
التعليق الأكثر فائدة
توافق على أن حقول الصفيف المطلوبة يجب أن تقبل المصفوفات الفارغة. لطالما فكرت في الأمر بهذه الطريقة ، حتى واجهت مشكلة مع النمس بالأمس.