Mongoose hiện hỗ trợ điều này nguyên bản với findOneAndUpdate (gọi MongoDB findAndModify).
Tùy chọn upsert =true sẽ tạo đối tượng nếu nó không tồn tại. mặc định thành false .
var query = {'username': req.user.username};
req.newData.username = req.user.username;
MyModel.findOneAndUpdate(query, req.newData, {upsert: true}, function(err, doc) {
if (err) return res.send(500, {error: err});
return res.send('Succesfully saved.');
});
Trong các phiên bản cũ hơn, Mongoose không hỗ trợ các hook với phương thức này:
- mặc định
- người thiết lập
- trình xác thực
- phần mềm trung gian