Я создаю приложение для покупок. У каждого пользователя есть кошелек.
Структура как:
{
"userName" : "Gandalf the Grey",
"wallet" : 100,
"orderHistory" : []
}
Скажите, этот пользователь покупает что-то, что стоит 50 единиц Есть ли лучший способ вместо извлечения значения кошелька с помощью findOne, а затем вычитания и обновления нового значения кошелька? Прямо сейчас я делаю это с 2 различными операциями, которые выглядят как
dbo.collection('users').findOne({'userName': controller.userName})
.then(function(doc) {
updateWallet(doc);
}
тогда
let newWalletBalance = doc.wallet - product.cost;
dbo.collection('users').updateOne(
{'userName':controller.userName},
{ $set: {wallet: newWalletBalance } }
);
Можно ли объединить их в один?