/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/javascript/nosql-41-005/main.js
36 строк
946 B
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
// 1. Создать сессию const session = db.getMongo().startSession(); // 2. Начать транзакцию session.startTransaction({ readConcern: { level: "snapshot" }, writeConcern: { w: "majority", j: true }, readPreference: "primary" // обязательно для транзакций }); try { // 3. Выполнять операции в сессии db.users.updateOne( { _id: ObjectId("..."), balance: { $gte: 100 } }, { $inc: { balance: -100 } }, { session: session } ); db.orders.insertOne( { userId: ObjectId("..."), amount: 100, ts: new Date() }, { session: session } ); // 4. Зафиксировать session.commitTransaction(); print("Транзакция успешна"); } catch (error) { // 5. Откат при ошибке session.abortTransaction(); throw error; } finally { // 6. Закрыть сессию (важно!) session.endSession(); }