У меня есть пример ввода

[[1,2],[3,2],[1,3],...,[4,5]] 

Как написать схему модели в мангусте?
Это моя схема

 const SubproductSchema = new Schema({ ... positions: [{ type: [Number], validate: { validator: function(value){ return value.length == 2; }, message: 'Positions should be 2' } }] }, { timestamps: true }); 

И это не работает.
Входные данные должны быть массивом с fixedSize с длиной 2 в массиве, как это [[1,2],[3,2],[1,3],...,[4,5]]
Если входные данные [[1,2,4],[3,2],[1,3],...,[4,5]] , они должны быть подтверждены с помощью 'Position should be 2'
ОБНОВЛЕНО
Я также попробовал этот код (логически правильно, я думаю):

 const SubproductSchema = new Schema({ ... positions: { type: [{ type: [Number], validate: { validator: function(value){ return value.length == 2; }, message: 'Positions should be 2' } }], } }, { timestamps: true }); 

И мой пост

 { ... "positions": [[2,3], [1,4], [4, 5]] } 

И это вывод ошибки:

Ошибка проверки подпродукта: позиции: сбой приведения к массиву для значения «[[2, 3], [1, 4], [4, 5]] » в пути «позиции » «

модель должна выглядеть так введите описание изображения здесь

Это то, что вы искали …

 const SubproductSchema = new Schema({ ... positions: [{ type: [Number], validate: [limit, 'Positions should be 2'] }] }, { timestamps: true }); const limit = (val) ={amp}gt; { let subElementsValidated = true; val.forEach(el ={amp}gt; { if (el.length != 2){ subElementsValidated = false; return; } }); return subElementsValidated; } 

Вы можете изменить параметры проверки, как это

 const SubproductSchema = new Schema({ ... positions: [{ type: [Number], validate: [limit, 'Positions should be 2'] }] }, { timestamps: true }); const limit = (val) ={amp}gt; { return val.length == 2; }