Mongoose: يلقي حقل الصفيف المطلوب خطأً عند تعيينه كمصفوفة فارغة

تم إنشاؤها على ١٠ فبراير ٢٠١٥  ·  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 من المخطط ، فسيبدأ العمل أيضًا.

هل المصفوفة الفارغة لا تعتبر مرضية للتحقق "المطلوب"؟ أتفهم أنه خطأ في جافا سكريبت ، ولكن هناك الكثير من الحالات التي يكون فيها المصفوفات والعناصر الفارغة مخصصة في مستندات مونجو.

backwards-breaking

التعليق الأكثر فائدة

توافق على أن حقول الصفيف المطلوبة يجب أن تقبل المصفوفات الفارغة. لطالما فكرت في الأمر بهذه الطريقة ، حتى واجهت مشكلة مع النمس بالأمس.

ال 3 كومينتر

متفق عليه ، لقد تعثرنا في هذا أيضًا.

كان السلوك المفترض لـ required: true بالنسبة لنا هو وجود مصفوفة ، وليس مصفوفة تتطلب عنصرًا واحدًا على الأقل.

توافق على أن حقول الصفيف المطلوبة يجب أن تقبل المصفوفات الفارغة. لطالما فكرت في الأمر بهذه الطريقة ، حتى واجهت مشكلة مع النمس بالأمس.

سأغلق هذا لصالح # 5139. سيتم تغيير هذا السلوك في 5.0.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات