如何使用 javascript aws-sdk 支持 dynamoDB 中的事务?

2023-11-27

我们有一个用 Node.js 编写的微服务,并使用 dynamoDB 进行数据存储。值以 json 格式存储在键中。在更新服务调用中,我们获取键的值,更新 json 并保存它。

最近,我们遇到了两个调用想要更新同一个键的值的情况。因此,第一次调用读取值,然后第二次调用读取值,第一次调用更新并保存,然后第二次更新并保存值(通常是竞争条件的情况),因此在这种情况下,第一次调用的更新不会反映在数据库中。

为了解决这个问题,我进行了一些研究并了解了 dynamoDB 的事务库。但node-js sdk中似乎还没有。

另外,我搜索了有关版本控制和乐观锁定的信息,但我再次没有在 node-js sdk 中找到对此的支持。

这有什么更新吗?如果 Node-js sdk 近期不会支持它,那么还有其他选择吗?处理这个问题的最佳方法是什么?


  1. 您可以进行原子更新,例如直接在 Dynamo 上递增数字,而无需读取、递增、更新。欲了解更多信息,请参阅this

  2. 两次更新是否更新相同的字段?如果是这样,您可以在更新中添加一个条件,即旧值等于您读取的值。这样,如果您尝试保存第二个新值,此条件将失败,并且不会执行第二次更新。看this

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 javascript aws-sdk 支持 dynamoDB 中的事务? 的相关文章

  • 如何使用有角度的材料创建卡片网格?

    我正在尝试使用 ng repeat 创建每行三张卡片的网格 我有一个普通的 javascript 对象数组附加到范围 下面的代码将为每张卡创建一个新行 div div
  • 如何使用 Playwright 使用选择器查找框架 (iframe)

    我有一个小问题 无法找到使用 Microsoft Playwright 框架的答案 根据您可以使用以下代码获取 iframe const frame page frame frame login 但是如何使用选择器来查找 iframe 并与
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • 如何在网站上使用 svg 元素制作块的屏幕截图?

    我在网站上创建了一个构造函数 其本质是将所选元素及其颜色 svg中的元素 添加到访问者选择的背景和背景颜色 png中的背景 中 然后必须单击 保存 结果 按钮并仅执行工作区的屏幕截图 我写了这个脚本 但它需要屏幕截图 但只有背景 并忽略选定
  • 本地推送通知到在应用程序内运行 JS 代码的 Win8 Live Tile

    我正在尝试将更新发送到我的应用程序的磁贴 当应用程序运行时 这可以正常工作 例如 当用户单击按钮时 我可以轻松地将磁贴更新通知发送到磁贴 我无法解决的是当应用程序无法运行时如何更新磁贴 我找到的唯一选择是使用以下命令从远程 Web 服务器拉
  • IntersectionObserver是否支持水平滚动观察?

    我制作了几个垂直滚动 IntersectionObserver 模块 但我对水平滚动感兴趣 根将是 div 观察目标将是 img 我想观察当 img 放大但 div 保持视口宽度时的变化 我什至不确定移动 Safari 是否会将缩放后的图片
  • AWS CDK 授予堆栈外部资源的权限

    我对 AWS CDK 相当陌生 并且没有太多使用 AWS 的经验 在我正在编写的 CDK 堆栈中 我必须向使用其他 CDK 模板构建且已位于 aws 中的资源授予权限 假设我的堆栈 A 包含一个 lambda 该 lambda 将从另一个服
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • IE 中的 XPath 查询使用从零开始的索引,但 W3C 规范是从一开始的。我应该如何处理差异?

    问题 我正在转换目前仅适用于 Internet Explorer 的相对较大的 Javascript 代码 以便使其也适用于其他浏览器 由于代码广泛使用 XPath 我们做了一些兼容性功能以使事情变得更容易 function selectN
  • Amplify 和 AppSync 不更新来自多个来源的突变数据

    我一直在尝试与 AppSync GraphQL 交互 Lambda 创建 有效 更新 不更改数据 Angular 已收到创建 更新订阅 但对象为空 Angular 欺骗更新 不更改数据 AppSync 控制台 欺骗更新 不更改数据 Post
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • Mongoose 独特的验证不起作用。保存重复条目

    我正在开发一个 NodeJS 应用程序 其中express是框架 MongoDB是数据库 我正在使用猫鼬插件 我有一个父母模型 我已经添加了独特 真实到场 mobile 但是每当我添加相同的手机号码时 唯一性验证就会失败 除了保存重复的文档
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • Vaadin 12 将对象传递给 JavaScript 函数:无法对类进行编码

    Vaadin 12 Kotlin 项目 In my myPage html我有JavaScript myObject redirectToCheckout sessionId 1111 2222 所以我需要调用javaScript函数red
  • 带有 npm 启动脚本的 Nodejs 应用程序

    我对nodejs很陌生 在我的docker化环境中 我想为nodejs应用程序提供appdynamics支持 这要求每个应用程序都要求将以下内容作为其应用程序的第一行 require appdynamics profile controll
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • 如何处理 MongoDB 的断开连接错误

    我在 Node js 进程中看到了这个未捕获的异常 Uncaught exception Error read ETIMEDOUT at TCP onStreamRead internal stream base commons js 16
  • 仅当显式选择行时才关闭 ui-bootstrap typeahead

    我创建了这个jsBin http jsbin com livuqafe 2 edit来证明我遇到的问题 如果您转到此处 请尝试输入 五 并继续 你的自然反应是输入 五 然后按 Tab 如果你想要 五百 你可以向下箭头一次 但是 在这种情况下
  • 测量窗口偏移

    有没有一种方法可以测量 jQuery 中窗口的偏移量 以便我可以比较 固定 元素和相对定位元素的位置 我需要能够知道窗口滚动了多远 以便我可以使用该图来计算固定元素的高度 相对于视口顶部 和相对对象的高度 相对于顶部 之间的差异文件的内容

随机推荐

  • Windows:直接读取另一个进程的内存

    我需要扫描 Windows 中另一个进程的内存 ReadProcessMemory 函数做得很好 但它每次都会将内存从目标进程复制到我的缓冲区之一 有没有办法访问另一个进程的内存 而无需每次都将其复制到我的进程的内存 如果有的话我可以使用指
  • 清单合并失败:针对 Android 12 及更高版本的应用需要为“android:exported”指定显式值

    请帮助我解决在尝试通过 android studio 在移动设备上运行时进入我的项目时出现的错误 清单合并失败 面向 Android 12 及更高版本的应用需要为android exported当相应的组件定义了意图过滤器时 看https
  • 使用循环填充空的Python数据框

    假设我想创建一个空数据框并用循环中的值填充它 import pandas as pd import numpy as np years 2013 2014 2015 dn pd DataFrame for year in years df1
  • Html.BeginForm 内的 Ajax.BeginForm

    我有一个用于编辑内容的视图 例如订单 订单有可以任意添加的行项目 所以有一个主视图和嵌套的局部视图 每个部分都应该有一个 ajax 表单 用于调整每个行项目的数量或其他内容 Thus Html BeginForm gt Ship to bl
  • Heroku 上的 Python bcrypt 包给出 AttributeError: 'module' object has no attribute 'ffi'

    我在 Heroku 上的 Flask 应用程序中使用 bcrypt 时遇到问题 当我部署到 Heroku 并转到登录路由时 我收到 500 内部服务器错误 它在本地工作正常 如何让 bcrypt 包在 Heroku 上运行 ERROR in
  • Angular2 rc.4layz路由

    Angular2 rc 4 惰性路由已被弃用 异步路由示例 rc 4 是否有新的惰性路由 异步路由示例 loadChildren应该这样做 path section loadChildren section bundle 我不知道该字符串到
  • 猫鼬 ob​​jectid 到数字

    如何将 ObjectId 转换为数字 在我的应用程序中 我在客户端使用最新的猫鼬版本和主干 我的问题是 ObjectId 最终总是放在引号之间 这会导致我的玉模板和客户端中出现双引号 例如 233453452534 edit 我正在查询 m
  • 如何在没有 _class 属性的情况下将 spring 数据与 couchbase 一起使用

    有没有一种简单的方法可以将 spring data couchbase 与没有的文档一起使用 class属性 在沙发底座上我有类似的东西sampledata bucket username alice created 14732928000
  • CSS 选择器和 jQuery 过滤器之间的区别?

    可以将 CSS 选择器传递给 jQuery 函数 例如 jQuery h1 h2 jQuery 还有一些过滤器 例如 even and odd jQuery tr even 我正在寻找某种区分两者的语法规则 我想也许 jQuery 过滤器总
  • SQL Server中Group By、Having和Where子句的执行顺序?

    当我们使用时 我只是对 SQL 查询的执行顺序感到困惑GROUP BY and HAVING with a WHERE条款 哪个先被处决 顺序是什么 为了 FROM JOINs 确定和过滤行 WHERE行上有更多过滤器 GROUP BY将这
  • gRPC 设置出现问题。出现间歇性 RPC 不可用错误

    我有一个 grpc 服务器和客户端 大部分时间都按预期工作 但偶尔会收到 传输正在关闭 错误 rpc error code Unavailable desc transport is closing 我想知道是不是我的设置有问题 客户端非常
  • 如何创建二维动态长度数组?

    我想创建一个二维数组 而不知道第一维的大小 例如 当我创建数组时 我的行数未知 每一行代表一个帐户 每行退出 4 列 ID 名称 用户 密码 我尝试使用锯齿状数组 但不可能 int jaggedArray new int 3 我也找过Arr
  • 在android上的列表视图下方添加一个按钮

    所以我一直在尝试在android中的列表视图下添加一个按钮 问题是该按钮没有出现
  • 为通过 Azure 函数输出绑定添加到 Azure 队列的消息设置 VisibilityTimeout

    我有一个 TimerTrigger 函数 输出绑定是一个 Azure 队列 这个想法是 计时器每 10 分钟运行一次 它将查看数据库中的视图 并迭代返回的任何行 将它们作为消息添加到队列中 下面是我的示例 TimerTrigger 将消息添
  • 在javascript中初始化和填充多维数组

    我们如何初始化和创建新的多维数组 让我们想象一下 如果我想初始化一个 4x4 多维数组并用 0 填充它 理想情况下 在二维数组中 我们会这样做 let oned array new Array 10 fill 0 将创建大小为 10 的数组
  • 如何使用 Selenium 查找表中的特定行?

    这是一个示例代码 div table class table gradient myPage 因此 productOrderContainer 中的这个表有几列 并且根据某些情况 将有几行 这些行都有几列 一个例子是 例如 我想做的是获取该
  • 在任何应用程序中使用 info.plist 隐藏状态栏

    需要澄清的是 我不想在我自己的应用程序上执行此操作 因此我无权访问源代码 我正在尝试编辑 info plist 或设备上已安装的 app 文件中的任何其他文件 以从应用程序 即 Google Chrome 中删除状态栏 我正在尝试隐藏 Go
  • RDD 在内存中保留多长时间?

    考虑到内存有限 我有一种感觉 spark会自动从每个节点中删除RDD 我想知道这个时间可以配置吗 Spark如何决定何时从内存中驱逐RDD 注意 我不是在谈论rdd cache 我想知道这个时间可以配置吗 Spark 如何决定何时 从内存中
  • 如何在 Tensorflow 中暂停/恢复训练

    这个问题是在保存和恢复文档可用之前提出的 现在我认为这个问题已被弃用 并建议人们依赖官方文档保存和恢复 老问题要点 I got TF工作正常CIFAR教程 我已经改变了 保存的代码train dir 带有检查点的目录和 模型 到已知位置 这
  • 如何使用 javascript aws-sdk 支持 dynamoDB 中的事务?

    我们有一个用 Node js 编写的微服务 并使用 dynamoDB 进行数据存储 值以 json 格式存储在键中 在更新服务调用中 我们获取键的值 更新 json 并保存它 最近 我们遇到了两个调用想要更新同一个键的值的情况 因此 第一次