mongo-tx nodejs 的 mongodb 事务处理包

程序名称:mongo-tx

授权协议: MIT

操作系统: 跨平台

开发语言: JavaScript

mongo-tx 介绍

一个灵活可扩展的 nodejs 的 mongodb 事务处理包,支持出错回滚,事务锁,单文档级锁,ODM 无关。

import mongoTx from 'mongo-tx'
import createMongoModel from 'mongo-tx/lib/implements/create-mongo-model'
import createMonGolock from 'mongo-tx/lib/implements/create-mongo-lock'

const runTx = mongoTx({
  createModel: createMongoModel({ db: nativeDb }),
  createLock: createMonGolock({ db: nativeDb, wait: true }), // wait is true: wait until current release is release instead of throw an error
})

await runTx('some_transfer', async tx => {
  const TxAccounts = tx.wrap('accounts')
  const acc1 = await TxAccounts.findOne({name: 'u1'})
  const acc2 = await TxAccounts.findOne({name: 'u2'})
  await TxAccounts.findOneAndUpdate({
    name: 'u1',
  }, {
    $set: {
      money: acc1.money - 100,
    },
  })
  throw new Error('Some error cause auto rollback!')
  await TxAccounts.findOneAndUpdate({
    name: 'u2',
  }, {
    $set: {
      money: acc2.money + 100,
    },
  })
})

mongo-tx 官网

https://git.oschina.net/zane_young/mongo-tx

相关编程语言

SchemaCrawler提供一组用于增强标准JDBC Metadata的...
ER Master 是一个用于设计ER模型图的Eclipse插件。提...
Eclipse下用于画数据库ER图的插件,主要特性如下: ...
PowerDesigner 是Sybase的企业建模和设计解决方案,...
Mogwai ERDesigner NG是一个实体关系建模工具类似于...
Power*Architect 是一个数据建模工具,主要用在数据...