To, co się dzieje, to to, że żadna z walidacji, oprogramowania pośredniczącego ani wartości domyślnych Mongoose nie jest używana podczas wywoływania żadnej z rodziny metod „aktualizacji”, takich jak findByIdAndUpdate
. Są wywoływane tylko przez wywołania save
lub create
.
Powodem tego jest to, że wywołania aktualizacji są skutecznie przekazywane do sterownika natywnego, a Mongoose zapewnia jedynie rzutowanie typów pól na podstawie definicji schematu.
Aktualizacja Mongoose 4.0
Mongoose obsługuje teraz ustawianie wartości domyślnych, gdy nowy dokument jest tworzony podczas update
, findOneAndUpdate
lub findByIdAndUpdate
upierdliwy. Ustaw setDefaultsOnInsert
opcja true
aby to umożliwić. Używa $setOnInsert
operatora, aby utworzyć wartości domyślne przy wstawianiu.
var queryOptions = {
upsert: true,
setDefaultsOnInsert: true
};
Company.findByIdAndUpdate(id, company, queryOptions).exec( ...