Java MongoDB 一次保存多个文档

2023-11-24

我有一个更新的对象/文档列表,我需要立即保存列表中的所有对象。

我在 MongoTemplate 中看到 save() 但它一次只能保存一个文档。 有什么方法可以一次保存多个文档,或者我需要循环调用保存?


您可以使用insertAll of MongoTemplate or ReactiveMongoTemplate,但必须谨慎使用。它的作用正如其名称所代表的那样——插入所有文档。如果你打电话save方法然后save具有乐观锁定,因此它会检查您是否不覆盖不应该覆盖的文档(如果它具有@Version注解)。insertAll不检查乐观锁定,因此只要您确实想要执行插入操作,就可以使用它,例如持久化尚未持久化的文档,或者您不关心覆盖这些文档和乐观锁定。如果您关心乐观锁定,那么您所能做的就是调用save对于每个文档,这将生成大量 I/O 操作,但这就是确保您将使用匹配版本更新文档所需要的。 你还必须记住这一点insertAll实际上插入新文档,这意味着您无法使用此方法更新文档,因为您会得到重复的键异常。目前 spring mongo 缺少一个允许更新所有文档的功能(你只能“插入”它们,所以第一次保存)

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

Java MongoDB 一次保存多个文档 的相关文章

随机推荐

  • ElasticSearch 在单词内使用连字符进行搜索

    我想寻求帮助 我想在标题和内容中搜索单词 这是结构 body gt array mappings gt array myindex gt array source gt array enabled gt true properties gt
  • “列表理解”和类似的意思是什么?它是如何工作的以及我该如何使用它?

    我有以下代码 x 2 for x in range 10 当我在 Python shell 中运行它时 它返回 0 1 4 9 16 25 36 49 64 81 我搜索过 似乎这被称为列表理解类似地 似乎还有 set dict 理解和生成
  • 如何在 Payara 5 中使用 Jackson 2?

    我正在使用 Jackson 2 和 Payara 4 我想使用杰克逊 2 位于 Payara 5 使用 JAX RS 我还想避免更改注释等等 在 Payara 5 中 默认的 Jsonb 提供者是 Yasson 有什么想法可以禁用它并使用杰
  • Jmeter命令行在聚合报告中“保存表数据”

    我想使用命令行保存聚合报告生成的表数据 以便我可以自动化该过程 然而 我从 2004 年左右使用 2 2 2 3 jmeter 的旧帖子中读到这是无法完成的 但由于现在是 2014 年 我们使用的是 jmeter 2 11 我想知道我们是否
  • 在中间件上下文中获取 starlette 请求正文

    我有这样的中间件 class RequestContext BaseHTTPMiddleware async def dispatch self request Request call next RequestResponseEndpoi
  • 独立于语言的 JSP 自定义模式的 JSTL formatNumber

    我正在使用 JSP 开发一个小应用程序 我需要将欧洲应用程序转换为国际应用程序 与美国格式兼容 等 我已经为标签创建了模式选项formatNumber here但这始终取决于您的应用程序的区域设置 示例1 我有一个区域设置en US格式编号
  • Android:为什么我们需要使用 R2 而不是 R 和 butterknife?

    我一直在使用牛油刀几个月来 我刚刚在其文档中注意到它说 现在确保在所有黄油刀中使用 R2 而不是 R 注释 这是为什么 我一直在使用 R 一切都很完美 仅在构建 Android 库项目时才需要使用 R2 https github com J
  • 稳健地裁剪照片上的旋转边界框

    我正在尝试稳健地提取轮廓的旋转边界框 我想拍摄一张图像 找到最大的轮廓 获取其旋转的边界框 旋转图像以使边界框垂直 然后裁剪到大小 为了进行演示 下面是链接在以下代码中的原始图像 我想最终将那只鞋子旋转到垂直并裁剪到尺寸 以下代码来自这个答
  • 使用 Intent.ACTION_PICK 打开图像

    我正在尝试使用intent ACTION PICK 打开图像 但是当我使用startActivityForResoult 启动活动时 我的应用程序崩溃了 有什么线索表明我做错了什么吗 public void button load imag
  • 使用 PHP 删除 .php 扩展名

    我在这里需要一些帮助 我正在使用它来修复我的 URL 但我不知道如何删除 php 扩展名 URL 现在看起来像这样 http mydomain com page php foo 123 bar 456 function decode URL
  • Javascript 在视口外的点获取元素

    是否有类似于 document elementFromPoint x y 的东西适用于视口之外的元素 根据 document elementFromPoint 的 MDN 文档 https developer mozilla org en
  • 无需本地服务器安装的 SharePoint 2010 开发

    我想在不安装本地 SharePoint 的情况下开发 SharePoint 2010 Web 部件 我的意思是我不想安装 SharePoint 服务器 因为我不需要它而且它太大了 我发现了一些关于此的问题 但我仍然无法让它工作 我找到了一篇
  • 如何通过 cloudformation 或 sam 使用 api 网关阶段?

    我在用AWS SAM部署我的 lambda 和 api 网关 下面是我的模板 yaml 文件 AWSTemplateFormatVersion 2010 09 09 Transform AWS Serverless 2016 10 31 D
  • Slim 4 中的路由中间件不会停止调用路由中的可调用对象

    我在 Slim4 中的授权中间件上遇到了困难 这是我的代码 app AppFactory create app gt add new Authentication app gt group providers function RouteC
  • 使用导航图范围注入视图模型:NavController 在 onCreate() 之前不可用

    我在应用程序中使用导航组件 并在同一图中的多个片段之间使用共享 ViewModel 现在我想用这个图形范围实例化 ViewModelthis 如你所知 在碎片中我们应该注入对象 ViewModel etc onAttach 但是当我想这样做
  • 解析器错误恢复可以由语法自动引导吗?

    我正在编写一个 LALR 解析器生成器作为一个宠物项目 我使用紫龙书来帮助我进行设计 我从中了解到解析器中有四种错误恢复方法 恐慌模式 开始转储输入符号 直到找到编译器设计者预先选择的符号 短语级恢复 将输入字符串修改为允许当前产生减少的内
  • C# Picturebox透明背景似乎不起作用

    对于我的一个项目 我需要以透明背景显示图像 我制作了一些具有透明背景的 png 图像 为了检查这一点 我在 Photoshop 中打开了它们 现在我有一个扩展 PictureBox 的类 class Foo PictureBox publi
  • Pygame显示位置

    创建 pygame 窗口后我需要窗口位置 window pygame display set mode width height 0 32 pygame init 默认情况下 窗口从 0 0 开始 但如果用户更改窗口位置 我还需要 x y
  • 将多个水平 RecyclerView 一起滚动

    我正在创建一个类似于 EPG 的视图 其中我有多个水平视图RecyclerViews 如电视节目 封装在 LinearLayout 内 当我滚动 RecyclerView 之一时 我希望其余视图一起滚动 Override public vo
  • Java MongoDB 一次保存多个文档

    我有一个更新的对象 文档列表 我需要立即保存列表中的所有对象 我在 MongoTemplate 中看到 save 但它一次只能保存一个文档 有什么方法可以一次保存多个文档 或者我需要循环调用保存 您可以使用insertAll of Mong