当前位置: 首页 > 知识库问答 >
问题:

Spring-Mongo:将mongo文档字段/s映射到实体的BasicDBObject/map

诸葛煜
2023-03-14

我有一个实体ProjectCycle映射到mongo DB collectionProjectCycle。我试图检索两个字段:_idstatus。我可以像下面这样检索这两者

@Document(collection="ProjectCycle")
public class ProjectCycle {
    @Id
    private String id;
    @Field("Status")
    private String status;
//getters and setters
}
Application.java

    Query query = new Query();
    query.fields().include("Status");
    Criteria criteria = new Criteria();
    criteria.and("_id").is("1000");
    query.addCriteria(criteria);
    Iterable<ProjectCycle> objectList = mongoOperations.find(query, ProjectCycle.class);
    for(ProjectCycle obj : objectList) {
        System.out.println("_id "+obj.getId());
        System.out.println("status "+obj.getStatus());
    }

输出

_id 1000
status Approved
public class ProjectCycle {
    @Id
    private String id;
    private DBObject basicDbObject;
    //getter & setter
}

我试图实现的是,集合'projectcycle'非常大,创建与之对应的POJO非常困难。另外,我只从MongoDB读取数据。因此,创建整个POJO是浪费时间和乏味的。

  • 我如何实现从mongo集合到实体的任何字段/字段之间的映射?。
  • 是否可以为查询返回的字段创建映射 objectmap; ?我正在使用spring-data-mongoDb进行相同的操作。

版本详细信息

共有1个答案

齐思淼
2023-03-14

尝试像下面这样映射您的查询。

Iterable<BasicDBObject> objectList = mongoOperations.find(query, BasicDBObject.class, collectionname);

for(BasicDBObject obj : objectList) {
    System.out.println("_id "+obj.get("id"));
    System.out.println("status "+obj.get("status"));
}
 类似资料:
  • 我试图找到一种方法,在JPQL查询中放置一个计算字段,以映射到Spring Boot中的实体。 我刚才的例子列出了一个静态数字,但我打算将来也将其用于聚合。 我在尝试运行查询时不断收到以下消息: “类[Ljava.lang.Object;不能强制转换为类com.School([Ljava.lang.Object;位于加载器“bootstrap”的模块java.base中;com.School位于加

  • 我有下面的结构,我想用MapStruct映射这个。 下面是mapstruct为toDTO方法生成的实现 下面是mapstruct为toEntity方法生成的实现 我的问题是方法只在文本不为空时设置注释。但是方法不检查空文本或空文本。因此,如果我在DTO中获得,它将创建一个新的comment对象并将文本设置为null。如何避免这一点?有人能解释一下这种行为并建议我正确的做法吗?谢了!

  • 问题内容: {用户名:’我’,公司:{“您的公司”:{…}} 我想在用户记录(用户集合)中插入公司,以便: {username:’me’,companies:{“ yourcompany”:{…},“ mycompany”:{…}} 但是这个名字是动态的。 为此。.{username:’me’,companies:{“ yourcompany”:{…},“ companyid”:{…}} 我该怎么

  • bugu-mongo 是一个 MongoDB Java 开发框架。它在 MongoDB Java Driver 的基础上进行了封装,使用简单。同时又集成了一些常用的特性,功能强大。

  • 实体类如下: 是否有任何方法可以将实体中的Transstatus列映射到枚举的整数值,即状态代码,例如,如果我有枚举值作为NOT_FOUND实体中的Transstatus值应该是12, 编辑请注意,我有两个枚举状态码的值,状态码字符串,我们想要的只是状态码,我们已经用“Ordinal”尝试过了,它打印枚举的整数值,而不是我示例中的状态码

  • 假设我有两个字段F1和f2。我想将F1更新为。我可以在Mongo中使用一个更新命令吗?