java - SpringMongo - 发现文档结构

标签 java spring mongodb spring-boot spring-data

我有一个客户数据库,其中有一个集合,其中的文档字段可能彼此不同。有一些我可以依赖的恒定字段,但至于其余字段 - 我无法缩小字段列表,因为客户希望解决方案是动态的。 我的问题是 - 我能否以某种方式实现一个通用映射,该映射将返回(比方说)使用 Spring Data 的文档字段映射?

编辑:

谢谢你的提示。我尝试使用实体获取通用对象(希望能够将其转换为 map ):

@Document(collection = "Data")
public class DataEntity {

    @Id
    private String id;

    private Object data;

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
    this.data = data;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

}

但是使用 MongoRepository 通过 ID 获取对象会生成一个数据字段设置为 null 的对象。 我将 SpringBoot 1.3.1.RELEASE 与 spring-boot-starter-data-mongodb 1.3.1.RELEASE 一起使用。

最佳答案

您可以使用映射来获取动态属性,如下所示。这是您要找的吗?

@Document(collection = "computers")
public class Computer {

  @Id
  private String id;

  @Field("name")
  private String name;

  //Other constant fields

  @Field("properties")
  private Map<String, Object> properties;

}

关于java - SpringMongo - 发现文档结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36907579/

相关文章:

spring - jQuery mobile - 浏览器刷新页面后完全困惑

java - Spring:未找到带有 URI 的 HTTP 请求的映射

javascript - 查询 Mongo 获取今天添加的所有条目(新手)

python - Flask Cookie 不起作用

java - 具有相对路径的 Jaxb2 目录文件

java - 使用多个 src 目录创建 javadoc

java - 将 log4j2 用于多个类

java - 标识触发 DataIntegrityViolationException 的约束名称

mongodb - 在 Kubernetes 上为 mongodb 创建 StatefulSet 时出错

java - 在方法期间创建 bean 的多个实例