【问题标题】:MongoDB with Spring Boot mapping order to List带有 Spring Boot 映射顺序的 MongoDB 列表
【发布时间】:2023-01-21 05:12:39
【问题描述】:

我目前正在使用“spring-boot-starter-data-mongodb”将文档持久保存到 mongodb 中的集合中。 该文档包含一个带有嵌套对象的列表,例如:

{
 foo:bar,
 foos: [
  {
   foo1: bar1,
   foo2: bar2
  },
  {
   foo1: bar4,
   foo2: bar3
  }
 ]
}

这些文档的映射包括以下内容:

private String foo;
private List<Foo> foos;

富:

private String foo1;
private String foo2;

业务逻辑在很大程度上取决于 foos(List 元素)的顺序。

真正的问题是:

  • 插入文档是否会保留元素的顺序,以便列表中的第一项将是 JSON 中的第一项等等?
  • 查询保留了元素的顺序,所以如果一个元素是数据库中文档的第 N 个成员,那么它是否也是映射对象中的第 N 个元素?

目前这似乎是真的,但我需要确保它是有保证的。

【问题讨论】:

    标签: mongodb spring-data-mongodb


    【解决方案1】:

    是的,据我所知,排序是有保证的,因为 MongoDB 按原样存储文档。文档已存储,读取时没有理由修改数组中的值。

    此外,StackOverflow 中还有几个问题,例如:

    如前所述,假设 MongoDB 保留数组中元素的顺序,当在 Spring Data MongoDB 中查询集合时,返回的文档将映射到相应的对象。

    因此,对象列表中元素的顺序将与数组中元素在 MongoDB 文档中的顺序相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-21
      • 2015-04-18
      • 2018-06-24
      • 2020-07-08
      • 2020-12-24
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多