最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

[Mongoose和NodeJs,Express进行Mongo DB 4.0事务

IT培训 admin 5浏览 0评论

[Mongoose和NodeJs,Express进行Mongo DB 4.0事务

我正在开发一个应用程序,其中我将MongoDB用作应用程序层中具有Nodejs + Express的数据库,我有两个集合,分别是

  1. 用户
  2. 交易

这里我必须以一定数量更新成千上万个用户的钱包,如果成功创建了一个新文档,其中包含与每笔交易相关的信息,这是我的代码:

 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中使用mongoose,可以任何人都告诉我如何使用MongoDB的最新Transactions功能(具有这些功能)重新实现上述代码

Session.startTransaction()
Session.abortTransaction()
SessionmitTransaction()

MongoDB文档:Click Here

回答如下:

使用Node.js中的猫鼬,谁能告诉我如何使用最新的交易功能重新实现以上代码

[Mongoose和NodeJs,Express进行Mongo DB 4.0事务

我正在开发一个应用程序,其中我将MongoDB用作应用程序层中具有Nodejs + Express的数据库,我有两个集合,分别是

  1. 用户
  2. 交易

这里我必须以一定数量更新成千上万个用户的钱包,如果成功创建了一个新文档,其中包含与每笔交易相关的信息,这是我的代码:

 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中使用mongoose,可以任何人都告诉我如何使用MongoDB的最新Transactions功能(具有这些功能)重新实现上述代码

Session.startTransaction()
Session.abortTransaction()
SessionmitTransaction()

MongoDB文档:Click Here

回答如下:

使用Node.js中的猫鼬,谁能告诉我如何使用最新的交易功能重新实现以上代码

发布评论

评论列表 (0)

  1. 暂无评论