Ах, да, я пытался подчеркнуть, что сеанс для базы данных не на сбор, но сделал ошибку. Исправлено сейчас. Благодарю.
рабатываю приложение, в котором я использую MongoDB в качестве базы данных с Nodejs + Express на уровне приложений, у меня есть две коллекции, а именно
пользователиоперацииЗдесь я должен обновить кошелек тысяч пользователей на определенную сумму и в случае успеха создать новый документ с соответствующей информацией для каждой транзакции. Это мой код:
userModel.update({_id : ObjectId(userId)}, {$inc : {wallet : 500}}, function (err, creditInfo) {
if(err){
console.log(err);
}
if(creditInfo.nModified > 0) {
newTransModel = new transModel({
usersId: ObjectId(userId),
amount: winAmt,
type: 'credit',
});
newTransModel.save(function (err, doc) {
if(err){
Cb(err);
}
});
}
});
но это решение неatomic
всегда существует возможность обновления кошелька пользователя на сумму, но связанная транзакция не создается в сборе транзакций, что приводит к финансовым потерям.
Я слышал это недавноMongoDB
добавилTransactions
поддержка в его4.0 version
Я прочитал документы MongoDB, но не смог его успешно реализоватьс мангустом в Node.jsМожет кто-нибудь сказать мне, как этот код может быть реализован с помощью последнейTransactions
особенность MongoDB, которые имеют эти функции
Session.startTransaction()
Session.abortTransaction()
Session.commitTransaction()
Документы MongoDB:Кликните сюда