mongo-tx 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
mongo-tx 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 MIT
操作系统 跨平台
软件类型 开源软件
开发厂商
地区 国产
提 交 者 zaaack
适用人群 未知
收录时间 2017-03-10

软件简介

一个灵活可扩展的 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,
    },
  })
})
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表于AI & 大数据专区
2014/08/13 18:32

The prefix "tx" for element "tx:advice" is not bou

The prefix "tx" for element "tx:advice" is not bound 错误的说明

0
1
发表了博客
2018/11/20 17:50

ethereumjs/ethereumjs-tx

https://github.com/ethereumjs/ethereumjs-tx A simple module for creating, manipulating and signing ethereum transactions 安装: npm install ethereumjs-tx --save example: const EthereumTx = require('ethereumjs-tx') const privateKey = Buffer.from('e331b6d69882b4cb4ea581d88e0b604039a3de5967688d3dc...

0
0
发表了博客
2019/03/01 23:52

TX锁处理

实际处理后,在测试环境中模拟还原TX锁,及处理。 本篇博客目录: 1.TX锁模拟实际环境 2.登陆数据库,查询相关信息 3.确认锁源头,kill进程释放资源 一、TX锁模拟 sess_1 SQL> update yz.a set name='cc' where id=1; 1 row updated. sess_2 SQL> delete a where name is null; sess_3 SQL> update a set id=5 where id...

0
0
发表了博客
2019/11/16 18:26

tx-lcn探险

一、描述:   随着分布式服务的到来,分布式事务必然也就成为分布式的重点,因此了解tx-lcn很有必要 二、tx-lcn的TC与TM的交互图:   注:其中事务发起方为TC-A,而TC-B、TC-C为事务参与方,TM为事务处理器:      交互描述:    1、TC-A向TM发送创建组请求    2、TC-B向TM发送加入组请求    3、TC-C向...

0
0
发表了博客
10/28 11:51

mongo

mongo 如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection(‘user’)),这样就可以创建一个名叫“myTest”的数据库,该库下有一个表名为"user" 一、数据库常用命令 1、Help查看命令提示 代码如下: help db.help(); db.yourColl.help(); db.youColl.find().help(...

0
0
发表于服务端专区
06/20 23:08

用docker部署mongo和mongo-express

拉取镜像 运行相关镜像 这里采用docker-compose合并,yml文件配置如下: version: '3.1' services: mongo: image: mongo // 镜像名 restart: always ports: - 27017:27017 mongo-express: ......

0
0
发表于服务端专区
2015/11/16 11:12

mongo

## 概念 ### 文档 **文档是MongoDB的核心** **注:** 1. 文档中键值对是无序的,不同的文档只是因为ID区分 1. 文档中的键值不但区分大小写,还区分类型 1. 文档的键是字符串。(除少数情况外,可以是任意的UTF-8字符) - _开始的键是保留的 - 键不能含有空字符 - .和$保留 最好不用 1. 文档的键不能重复 ### 集合 1. 文档类...

0
0
发表了博客
2012/04/23 11:15

记TX一面

1、select和epoll的区别 2、linux查看负载命令,配置文件存放的路径 3、B+树 4、volatile是怎么回事 5、c++虚函数实现机制 6、10亿个数,每个数范围0-9999,从小到大输出 7、const char *,char const char *区别 8、项目中用到了什么开源软件 9、建立一个server(实现client与server通信)需要用到那些系统调用,三次握...

1
0
发表了博客
2013/03/06 14:15

HTTP历史版本--tx

http目录[隐藏] 定义 HTTP概述 HTTP是什么? HTTP是怎样工作的 HTTP的含义及其作用 http协议基础 http协议结构 HTTP错误代码详细介绍 协议版本号 定义 HTTP概述 HTTP是什么? HTTP是怎样工作的 HTTP的含义及其作用 http协议基础 http协议结构 HTTP错误代码详细介绍 协议版本号    [编辑本段]定义   HTTP:是Hypertext...

0
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
1 收藏
分享
返回顶部
顶部