mongo-tx

nodejs 的 mongodb 事务处理包
授权协议 MIT
开发语言 JavaScript
所属分类 数据库相关、 数据库驱动程序
软件类型 开源软件
地区 国产
投 递 者 冷翼
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

一个灵活可扩展的 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连接配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"

  • 问题1: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'roleDaoImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.fact

  • Sring-data-mongo框架   1、定义:基于Spring开发的一个简化MongoAPI操作的java框架,其使用方式与spring一致 2、Spring-Data-Mongo简化的MongoAPI操作内容       a、重复性的代码-----》如初始化             例:Mongo m=new Mongo(ip,port);                    DB  

  • 1. maven   pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.o

  • 这是一个spring和struts以及monggodb java驱动 还有quartz等框架需要的依赖包的依赖配置集合。 新建一个maven项目后可以直接使用。 pom.xml 简洁版spring+struts <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema

  • 目前需要用到mongodb搭建一个web服务应用,现整合出一个spring+spring mvc+spring-data的整合配置。 maven pom.xml <span style="white-space:pre"> </span><properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  • 在上面 LCN 事务模式代码基础上进行修改 1.新建项目 mongodb_insert 1.1 修改 pom.xml 在当前项目中引入 mongodb 的依赖。如果在父项目中进行引入,则所有的子项目都需要配置 mongodb 的相关属性 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <

  • application.xml中加入 头部空间 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/sch

 相关资料
  • 我有一个带有两个数据库的Spring Batch应用程序:一个SQLDB用于Spring Batch元数据,另一个是存储所有业务数据的MongoDB。关系DB仍然使用。但是我不认为Mongo写入是在带有回滚的活动事务中完成的。以下是上官方Spring Batch留档的摘录: ItemWriter实现,使用Spring数据的MongoOperations实现写入MongoDB存储。由于MongoDB

  • 当使用事务处理时,需要创建 Session 对象。在进行事务处理时,可以混用 ORM 方法和 RAW 方法,如下代码所示: func MyTransactionOps() error { session := engine.NewSession() defer session.Close() // add Begin() before any action

  • 启动事务 $this->db->start(); Swoole::$php->db('slave2')->start(); 提交事务 $this->db->commit(); Swoole::$php->db('slave2')->commit(); 回滚事务 $this->db->rollback(); Swoole::$php->db('slave2')->rollback();

  • 在2.0.0之后我们已经支持事务嵌套了,是通过事务等级去实现的。 1. 开始事务 $model->beginTransaction(); 2. 事务提交 $model->commit(); 3. 事务回滚 $model->rollback();

  • 事务处理(transaction processing) 可以用来维护数据的完整性,保证SQL的操作要么完全执行,要么完全不执行,如果发生错误就进行撤销。 保证数据的完整性。 保证数据不受外影响。 事务处理的几道术语 事务(transaction) 一组SQL语句 退回(rollback)撤销执行SQL语句的过程 提交(commit) 将为执行的SQL语句写入数据库表 保留点(savepoint)

  • 我正在开发一个需要处理MongoDB文档更新同步的应用程序。为此,我使用Azure Cosmos DB MongoDB API 4.0,它支持多文档事务。 我尝试了几次失败的更新操作(延迟了1000毫秒),但没有任何运气。 每次重试都以相同的异常消息结束。 最后,异常消息更改为: 我相信最后一个异常是不同的,因为事务超时了(文档显示超时= 5秒)。 当使用Azure Cosmos DB Mongo

  • ORM 可以简单的进行事务操作 o := NewOrm() err := o.Begin() // 事务处理过程 ... ... // 此过程中的所有使用 o Ormer 对象的查询都在事务处理范围内 if SomeError { err = o.Rollback() } else { err = o.Commit() }

  • 概述 事务(transaction)是由查询和/或更新语句的序列组成。 用 begin、start transaction 开始一个事务,rollback 回滚事务,commit 提交事务。 在开始一个事务后,可以有若干个 SQL 查询或更新语句,每个SQL执行后,还应该有判断是否正确执行的语句,以确定下一步是否回滚,若都被正确执行则最后提交事务。事务一旦回滚,数据库则保持开始事务前状态。就好象一