如何将MongoDB文档解析为Java类

d7v8vwbk  于 12个月前  发布在  Go
关注(0)|答案(3)|浏览(107)

在Java中使用MongoDB驱动程序。
假设我在集合db.people中有一个MongoDB文档:
{"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;
   }
}`

如何将文档中的信息解析到类中?有没有一种方法可以通过以BasicDBObject的形式操作文档来实现这一点?我浏览了所有的方法,但不知道是怎么回事,因为我的第一个倾向是使用一个返回键值对数组的方法(据我所知,不存在这样的方法)。

vngu2lb8

vngu2lb81#

Jongo是你的朋友:

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

juud5qan2#

编辑:昆德拉不再维护。请使用替代品。
如果你想直接用Java对象MapMongoDB文档,并且mongoDB中的模式是固定的,你也可以使用ORM。Kundera是一个很好的大数据ORM。
它支持CRUD和查询操作,类似于RDBMS。了解更多here

6yt4nkrj

6yt4nkrj3#

假设您已经执行了一个查询,您通常会遍历结果。有关设置查询和查看基本迭代的信息,请参阅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

相关问题