Mongoose Upsert не создает свойство схемы по умолчанию
Пример документа Схема:
var CompanySchema = Schema({
created: { type: Date, default: Date.now },
modified: { type: Date, default: Date.now },
address: { type: String, required:true },
name: { type: String, required:true }
});
Я использую общий обработчик запросов для редактирования и создания документов «Компания»:
exports.upsert = function(req, res) {
helper.sanitizeObject(req.body);
var company = {
name: req.body.name,
address: req.body.address
};
var id = req.body.id || new mongoose.Types.ObjectId();
var queryOptions = {
upsert: true
};
Company.findByIdAndUpdate(id, company, queryOptions).exec(function(error, result) {
if(!error) {
helper.respondWithData(req, res, {
data: result.toJSON()
});
} else {
helper.respondWithError(req, res, helper.getORMError(error));
}
});
};
Но используя этот метод, когда новый документ вставлен,created
, modified
свойства не сохраняются со значениями по умолчаниюDate.now
, Теперь я могу позвонитьCompany.create
в зависимости от существования идентификатора, но мне интересно, почему upsert не использует значения по умолчанию, если свойство не существует в новом документе?
Я использую версию Mongoose ~ 3.8.10,