Insert and update as one transaction.

Section: Transactions

Transaction example

javascript
javascript
const session = db.getMongo().startSession();
const appdb = session.getDatabase("appdb");

session.startTransaction();
try {
  appdb.accounts.updateOne({ _id: 1 }, { $inc: { balance: -50 } });
  appdb.accounts.updateOne({ _id: 2 }, { $inc: { balance: 50 } });
  session.commitTransaction();
} catch (err) {
  session.abortTransaction();
  throw err;
} finally {
  session.endSession();
}
Explanation

A classic transfer example: either both updates commit or neither does.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Transactions
Start a session
Create a session for transactional work.
OpenIn sheetjavascriptsame section
Start a transaction
Begin a multi-document transaction.
OpenIn sheetjavascriptsame section
Abort a transaction
Roll back a started transaction.
OpenIn sheetjavascriptsame section
End a session
Clean up the session after work completes.
OpenIn sheetjavascriptsame section
Watch a collection
Open a change stream on one collection.
OpenIn sheetjavascript1 tag match
Watch only selected changes
Filter stream events with a pipeline.
OpenIn sheetjavascript1 tag match