UNPKG

easy-mongo-orm

Version:

A powerful and elegant MongoDB/Mongoose toolkit that makes database operations a breeze with built-in caching, search, pagination, performance monitoring, soft delete, versioning, data export/import, schema validation, and migration utilities

32 lines (31 loc) 817 B
"use strict"; const mongoose = require('mongoose'); class TransactionManager { constructor(model, options = {}) { this.Model = model; } async withTransaction(callback) { const session = await mongoose.startSession(); session.startTransaction(); try { const result = await callback(session); await session.commitTransaction(); return result; } catch (error) { await session.abortTransaction(); throw error; } finally { session.endSession(); } } async bulkWrite(operations, options = {}) { return this.Model.bulkWrite(operations, options); } async aggregate(pipeline) { return this.Model.aggregate(pipeline); } watch(pipeline, options) { return this.Model.watch(pipeline, options); } } module.exports = TransactionManager;