Есть ли лучший способ сохранить вложенный документ в Mongoose?Как я знаю, мне нужно сначала попытаться обновить документ.Когда он не найден - я выполняю push в массив под-документа.Код выглядит не очень красиво.Не могли бы вы поделиться передовым опытом по этому поводу?
async (eventId, userId, bet) => {
bet.user = userId;
try {
let event = await Event.findOneAndUpdate({
'_id': eventId,
// 'bettingFinishDate': { $gt: new Date() },
'isDeleted': false,
'bets.user': userId,
'bets.isDeleted': false }, {
'$set': {
'bets.$': bet
}
}, { 'new': true });
if (!event) {
event = await Event.findOne({
'_id': eventId,
'isDeleted': false,
});
event.bets.push(bet);
event = await event.save();
};
return event;
} catch (e) {
throw new Error('An error occurred while adding bet to specified event.');
};
};