如何将MongoDB文档解析为Java类

时间:2015-10-01 14:58:32

标签: java json mongodb parsing

我在Java中使用config.vm.synced_folder "/", "/var/www/pedram.dev" 驱动程序。

假设我在db.people集合中有一个MongoDB文档:

MongoDB

和一个看起来像

的Java类
{"name":"Joe", "surname":"Blow", "age":20}

如何将文档中的信息解析到我的班级?有没有办法通过以`public class Person { String name; String surname; int age;` `public void setPersonalInfo(String name, String surname, int age) { this.name = name; this.surname = surname; this.age = age; } }` 的形式操作文档来做到这一点?我查看了这些方法并且无法理解如何,因为我的第一个倾向是使用一个返回一组键值对的方法(据我所知,不存在这样的方法)。

3 个答案:

答案 0 :(得分:1)

Jongo是你的朋友:

Person p = people.find("{age: {$gt: 18}}").as(Person.class)

答案 1 :(得分:0)

如果要将MongoDB文档直接映射到Java对象并修复mongoDB中的模式,您也可以使用ORM。 Kundera是大数据的优秀ORM之一。

它支持CRUD&以类似于RDBMS的方式查询操作。了解更多here

答案 2 :(得分:-1)

假设您已执行查询,通常会遍历结果。 有关设置查询和查看基本迭代的信息,请参阅MongoDB Java Driver Quick Tour,特别是使用光标获取所有文档部分。

要解析结果而不是打印,请查看DBObject接口及其实现的BSONObject方法。 get 方法是您可以用来访问字段的方法。下面是一个与您将在迭代器块中使用的示例文档和Java类相关的示例:

DBObject obj = cursor.next();
String name = obj.get("name");
//obtain other field values the same way