De acordo com esta resposta isso é feito por padrão para permitir que o Model execute operações padrão em arrays, o que é possível quando o array está vazio, mas não quando é
null
ou undefined
. No entanto, é possível remover completamente uma propriedade com um array vazio. De acordo com as atualizações mais recentes este tópico a seguinte modificação no esquema funcionaria:
var questionSchema = new Schema({
items: { type: Array, default: void 0 } // <-- override the array default to be undefined
});