Introduction
Transaction isolation helps keep data safe and consistent when many people change the database at the same time.
const session = client.startSession(); session.startTransaction({ readConcern: { level: 'snapshot' }, writeConcern: { w: 'majority' } }); try { // your database operations here await session.commitTransaction(); } catch (error) { await session.abortTransaction(); } finally { session.endSession(); }
const session = client.startSession(); session.startTransaction(); // operations await session.commitTransaction(); session.endSession();
session.startTransaction({ readConcern: { level: 'snapshot' } });session.startTransaction({ writeConcern: { w: 'majority' } });const { MongoClient } = require('mongodb'); async function run() { const client = new MongoClient('mongodb://localhost:27017'); await client.connect(); const session = client.startSession(); const collection = client.db('shop').collection('products'); try { session.startTransaction({ readConcern: { level: 'snapshot' }, writeConcern: { w: 'majority' } }); await collection.updateOne({ name: 'apple' }, { $inc: { stock: -1 } }, { session }); await collection.updateOne({ name: 'banana' }, { $inc: { stock: -1 } }, { session }); await session.commitTransaction(); console.log('Transaction committed'); } catch (error) { await session.abortTransaction(); console.log('Transaction aborted'); } finally { session.endSession(); await client.close(); } } run();
const session = client.startSession();
session.startTransaction();
await collection.insertOne({item: 'apple'}, {session});
await session.commitTransaction();
session.endSession();
What is the transaction isolation level used by MongoDB in this case?const session = client.startSession();
session.beginTransaction();
await collection.updateOne({name: 'John'}, {$set: {age: 30}}, {session});
await session.commitTransaction();
session.endSession();
What is the main issue causing the error?Pass the test and this pattern moves unknown