我在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;
}
}`
的形式操作文档来做到这一点?我查看了这些方法并且无法理解如何,因为我的第一个倾向是使用一个返回一组键值对的方法(据我所知,不存在这样的方法)。
答案 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