相关疑难解决方法(0)

使用Jackson进行Java Mongo DBObject的高效POJO映射

虽然类似于使用MongoDB Java驱动程序将DBObject转换为POJO,但我的问题不同,因为我特别感兴趣使用Jackson进行映射.

我有一个对象,我想转换为Mongo DBObject实例.我想使用Jackson JSON框架来完成这项工作.

一种方法是:

DBObject dbo = (DBObject)JSON.parse(m_objectMapper.writeValueAsString(entity));
Run Code Online (Sandbox Code Playgroud)

然而,根据https://github.com/FasterXML/jackson-docs/wiki/Presentation:-Jackson-Performance这是要走的最糟糕的方式.所以,我正在寻找替代方案.理想情况下,我希望能够挂钩到JSON生成管道并动态填充DBObject实例.这是可能的,因为在我的情况下,目标是一个BasicDBObject实现Map接口的实例.因此,它应该很容易适应管道.

现在,我知道我可以使用该ObjectMapper.convertValue函数将对象转换为Map ,然后BasicDBObject使用该BasicDBObject类型的map构造函数递归地将地图转换为实例.但是,我想知道我是否可以消除中间地图并BasicDBObject直接创建.

注意,因为a BasicDBObject本质上是一个映射,所以相反的转换,即从标量DBObject到POJO是微不足道的,应该非常有效:

DBObject dbo = getDBO();
Class clazz = getObjectClass();
Object pojo = m_objectMapper.convertValue(dbo, clazz);
Run Code Online (Sandbox Code Playgroud)

最后,我的POJO没有任何JSON注释,我希望它保持这种方式.

java mongodb jackson mongo-jackson-mapper

19
推荐指数
1
解决办法
4万
查看次数

POJO to org.bson.Document and Vice Versa

有没有简单的方法将Simple POJO转换为org.bson.Document?

我知道有很多方法可以像这样做:

Document doc = new Document();
doc.append("name", person.getName()):
Run Code Online (Sandbox Code Playgroud)

但它有一个更简单和更错误的方式吗?

java mongodb-java

9
推荐指数
4
解决办法
1万
查看次数

DBObject在java中映射

我需要将MongoDB的结果放在Map中.我的代码是

DBCollection collection = db.getCollection("template");
DBCursor cursor = collection.find(allQuery, removeIdProjection); 
DBObject resultElement = null;
resultElement = cursor.next();
Run Code Online (Sandbox Code Playgroud)

结果Json是:

{"GraphLabel":"工作量订单","XaxisLabel":"2012","YaxisLabel":"volume(k)","ShowLegend":"FALSE","query":"select sd.season_id,sd .season,count(fsf.defect_type_id)来自m2m.season_dim sd,m2m.field_service_fact fsf其中fsf.season_id = sd.season_id group by sd.season_id"}

需要将值与MAP或POJO放在一起..有人可以帮忙吗?

java mongodb

2
推荐指数
1
解决办法
5127
查看次数