【发布时间】:2020-08-07 18:41:13
【问题描述】:
祝大家有个愉快的一天!
我正在尝试在 JAVA 中理解 MongoDB。我正在尝试将 MongoDB Document 对象映射到我自己的 java 对象。
我的 MongoDB 文档结构:
{
"_id" : {
"$oid" : "5f2d37f1cdf2f93d01fd5f9a"
},
"Person_ID" : {
"$numberInt" : "3"
}, "Name" : "John", "Lastname" : "Doe"
}
MyClass.class 模型:
public class MyClass {
String oid;
int Person_ID;
int numberInt;
String Name, Lastname;
//empty constructor
public MyClass() {}
// Setters and Getters
}
我尝试使用 JAVA:
public static void main(String[] args) {
MongoClientURI uri = new MongoClientURI(
"mongodb+srv://<username>:<password>@cluster.lt8te.mongodb.net/dbProject?
retryWrites=true&w=majority");
MongoClient client = new MongoClient(uri);
MongoDatabase db = client.getDatabase("dbProject");
MongoCollection<Document> coll = db.getCollection("myCollection");
Document doc = (Document) coll.find().first();
System.out.println(doc.toJson());
Gson gson = new Gson();
MongoObject mongoObj = gson.fromJson(doc.toJson(), MyClass.class);
}
我遇到了一个错误: 原因:java.lang.IllegalStateException:应为字符串,但在第 1 行第 10 列路径 $._id 处为 BEGIN_OBJECT
我认为我的 MyClass 模型与 Document mongoDB 模型不匹配。 我不太确定我哪里出错了。或者要编辑什么? 谢谢。
【问题讨论】:
标签: java mongodb netbeans pojo