Итак, у меня есть схема со следующей структурой:
//...
positions: [{
type: Schema.Types.ObjectId,
ref: 'Story'
}]
//...
Теперь, в идеальном состоянии, этот массив будет содержать только идентификаторы, и их заполнение не составит проблемы.
let positions = ['id1', 'id2', 'id3'];
Но иногда мне нужно удалить какой-то идентификатор в определенной позиции, но оставить остальные в их индексах. Итак, я бы получил:
let positions = ['id1', null, 'id3'];
Массив, подобный приведенному выше, я даже не могу сохранить в Document и не заполнить его.
Как я могу определить схему, чтобы она могла содержать некоторое значение ложь и не выдавать ошибки при его сохранении, а также пропускать эти значения при заполнении?
Вы говорите об установке одного согласованного элемента на null для последующего удаления? Это действительно может быть проблемой для схемы мангуста с установленными типами, но для ясности вам не следует «нуждаться» в таком процессе, если только элементы в массиве не появляются с одним и тем же значением более одного раза.





Дело в том, что вам нужно хранить индексы. И если вам это абсолютно необходимо, храните индексы в другом массиве.