gpt4 book ai didi

Spring-Mongo : mapping mongo document field/s to BasicDBObject/Map of BasicDBObject of an Entity

转载 作者:可可西里 更新时间:2023-11-01 10:41:08 25 4
gpt4 key购买 nike

我有一个实体 ProjectCycle映射到 mongo 数据库集合 ProjectCycle .我正在尝试检索 2 个字段,_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());
}

Output

_id 1000
status Approved

但是,问题是当我使用带有字段 private DBObject basicDbObject; 的实体时而不是 private String status;我得到的值是 null而不是 Approved

我试过如下

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

我想要实现的是,集合' ProjectCycle ' 非常大,创建与之对应的 POJO 非常困难。我也只从 mongoDB 读取数据。所以创建整个 POJO 既浪费时间又乏味。

  • 如何实现从 mongo 集合到实体的任何字段之间的映射?。
  • 是否可以创建 Map<String, BasicDBObject> objectMap;从查询返回的字段?我正在使用 Spring-data-mongodb同样。

Version details

Spring 4.0.7.RELEASE

spring-data-mongodb 1.7.2.RELEASE

最佳答案

尝试如下映射您的查询。

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"));
}

关于Spring-Mongo : mapping mongo document field/s to BasicDBObject/Map of BasicDBObject of an Entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42388766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com