Я хочу использовать проверку в моей схеме. Поэтому я не могу использовать findOneAndUpdate
(?). Я должен использовать save.Используя findOne, затем save(), чтобы заменить документ, mongoose
Проблема заключается в том, что если я использую findOne, то заменяет объект тем, который я собираюсь заменить, он больше не будет иметь функцию сохранения.
mongoose.model('calculations').findOne({calcId:req.params['calcId']}, function(err, calculation){
if(err) {errHandler.serverErr(err, res, 'Something went wrong when trying to update a calculation'); return;}
calculation = calculationToReplace;
calculation.save(function(err, calc){ //No longer exists
if(err) {errHandler.serverErr(err, res, 'Something went wrong when trying to update a calculation'); return;}
res.send(200);
});
});
Это должна быть общая задача, но я не могу найти решение. Как это исправить?
В английском языке вы подразумеваете, что вы «читаете» объект из базы данных, но затем объект может «изменяться» в базе данных, прежде чем вы его запишете. Так что это должно объяснить, почему вы этого не делаете и переместите логику в '.findOneAndUpdate()' вместо этого, не так ли? КСТАТИ. Два худших ответа, которые когда-либо возникали –