事务在 mongodb 中没有回滚

问题描述 投票:0回答:1
var j = schedule.scheduleJob(unique_name, timeNow, async function () {
        session10.startTransaction();
        try{
  
            await readmodel.findOneAndUpdate({}, {
                $set: {
                    readonlyMode: true,
                    yearEndClosure: true
                }
            }, { session10 });
            var archivalActivity ={
                activity_id: 4,
                activityName: 'Current year Data Back',
                activity_Status: 'In Progress',
                err_occured: 'None',
                remarks: 'None'
            }
            await yearmodel.findOneAndUpdate({year:MCpayload.year,month:MCpayload.month,'activities.activity_id': 3},{
                $set :{
                    'activities.$.activity_Status': 'Completed',
                },
  
            },{session10});
            await yearmodel.findOneAndUpdate({year:MCpayload.year,month:MCpayload.month},{
                $push :{
                    activities: archivalActivity
                }
            },{session10})
  
            const etdataCurrentYear = await etmodel.find({}, { _id: 0 },{session10})
            const etBackupData = await emt_archival_yearEnd.insertMany(etdataCurrentYear, { session10 });
            console.log(etdataCurrentYear.length, etBackupData.length, "inserted Succesfully")
            const etproofCurrentYear = await etproofmodel.find({}, { _id: 0 }, { session10});
            const etproofBackupData = await proof_archival_yearEnd.insertMany(etproofCurrentYear, { session10});
            console.log(etproofCurrentYear.length, etproofBackupData.length, "inserted Succesfully")
            const cmnproofCurrentYear = await etcommonproofmodel.find({}, { _id: 0 }, {session10 });
            const cmnproofBackupData = await common_proof_archival_yearEnd.insertMany(cmnproofCurrentYear, { session10 });
            console.log(cmnproofCurrentYear.length, cmnproofBackupData.length, "inserted Succesfully")
            const etcaseCurrentYear = await etcasemodel.find({}, { _id: 0 }, {session10});
            const etcaseBackupData = await caseStudy_proof_archival_yearEnd.insertMany(etcaseCurrentYear, { session10});
            console.log(etcaseCurrentYear.length, etcaseBackupData.length, "inserted Succesfully")
            const umtSummaryCurrentYear = await umt_summary_model.find({}, { _id: 0 }, { session10 });
            const umtSummaryBackupData = await UmtSummary_archive_yearEnd.insertMany(umtSummaryCurrentYear, {session10 });
            console.log(umtSummaryCurrentYear.length, umtSummaryBackupData.length, "inserted Succesfully")
            const umtDetailsCurrentYear = await umt_data_model.find({}, { _id: 0 }, {session10 });
            const umtDetailsBackupData = await UmtDetail_archive_yearEnd.insertMany(umtetailsCurrentYear, {session10 });
            console.log(umtDetailsCurrentYear.length, umtDetailsBackupData.length, "inserted Succesfully")
            const umtExpCurrentYear = await umt_exception_model.find({}, { _id: 0 }, { session10 });
            const umtExpBackupData = await UmtExceptional_archive_yearEnd.insertMany(umtExpCurrentYear, { session10 });
            console.log(umtExpCurrentYear.length, umtExpBackupData.length, "inserted Succesfully")
  
            var archivalTablebackup ={
                activity_id: 5,
                activityName: 'Archival Tables Backup',
                activity_Status: 'In Progress',
                err_occured: 'None',
                remarks: 'None'
            }
            await year_end_closure_model.findOneAndUpdate({year:MCpayload.year,month:MCpayload.month,'activities.activity_id': 4},{
                $set :{
                    'activities.$.activity_Status': 'Completed',
                },
  
            },{session10});
            await year_end_closure_model.findOneAndUpdate({year:MCpayload.year,month:MCpayload.month},{
                $push :{
                    activities: archivalTablebackup
                }
            },{session10})
            console.log("current year tables backup done")
            const etarchival = await etmodel_archive.find({}, { _id: 0 }, {session10});
            const etarchivalBackup = await emt_archive_backup.insertMany(etarchival, {session10});
            console.log(etarchival.length, etarchivalBackup.length, "inserted Succesfully")
            const etProofArchival = await etproofmodel_archive.find({}, { _id: 0 }, { session10});
            const etProofArchivalBackup = await proof_archive_backup.insertMany(etProofArchival, {session10});
            console.log(etProofArchival.length, etProofArchivalBackup.length, "inserted Succesfully")
            const cmnProofArchival = await etcommonproof_archive_model.find({}, { _id: 0 }, { session10});
            const cmnProofArchivalBackup = await cmn_proof_archive_backup.insertMany(cmnProofArchival, {session10 });
            console.log(cmnProofArchival.length, cmnProofArchivalBackup.length, "inserted Succesfully")
            const etcaseArchvial = await etcasemodel_archive.find({}, { _id: 0 }, { session:session10 });
            const etcaseArchivalBackup = await caseStudy_archive_backup.insertMany(etcaseArchvial, {session10});
            console.log(etcaseArchvial.length, etcaseArchivalBackup.length, "inserted Succesfully")
  session10.commitTransaction();
}catch(err){

}
 

如果交易中出现任何问题,则无法恢复,请让我知道我哪里做错了.............................. ...................................................... ...................................................... ...................................................... ...................................................... ...................................................... ....

node.js mongodb express mongoose mongodb-query
1个回答
0
投票

您不调用 AbortTransaction。然而,mongo 提供了方便的 API,可以为您简化这项工作。请参阅此处

© www.soinside.com 2019 - 2024. All rights reserved.