MongoDB似乎返回了BSON/JSON对象.
我认为你肯定能够以字符串,整数等方式检索值,然后可以保存为POJO.
作为迭代列表的结果,我有一个DBObject(实例化为BasicDBObject)...(cur.next()).
除了使用某种持久性框架之外,唯一的方法是将数据放入POJO以使用JSON serlialiser/deserialiser吗?
我的方法看起来像这样:
public List<User> findByEmail(String email){
DBCollection userColl;
try {
userColl = Dao.getDB().getCollection("users"); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace();}
DBCursor cur = userColl.find();
List<User> usersWithMatchEmail = new ArrayList<User>();
while(cur.hasNext()) {
// this is where I want to convert cur.next() into a <User> POJO
usersWithMatchEmail.add(cur.next());
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
编辑:很明显,只是做这样的事情.
我尝试使用Spring Data将以下DBObject插入MongoDB:
BasicDBObject document = new BasicDBObject();
document.put("country", "us");
document.put("city", "NY");
mongoTemplate.insert(document);
Run Code Online (Sandbox Code Playgroud)
其中mongoTemplate是我的Spring模板(org.springframework.data.mongodb.core.MongoTemplate).
执行时,我得到:
Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: No Persitent Entity information found for the class com.mongodb.BasicDBObject
at org.springframework.data.mongodb.core.MongoTemplate.determineCollectionName(MongoTemplate.java:1747)
at org.springframework.data.mongodb.core.MongoTemplate.determineEntityCollectionName(MongoTemplate.java:1732)
at org.springframework.data.mongodb.core.MongoTemplate.insert(MongoTemplate.java:658)
Run Code Online (Sandbox Code Playgroud)
我的JSON最终将是动态的.那么任何想法如何动态提供这些实体信息?或者是否有另一种方法可以通过Spring Data将原始JSON插入Mongodb?
在我的Java应用程序中,我将mongoDB中的值存储在ArrayList(Java对象集)中.如何从DBObject检索数据
我将数据存储在mongoDB中,如下所示:
{ "students" : [{"firstName" : "Jesse", "lastName" : "Varnell", "age" : "15", "gender" : "M" }, { "firstName" : "John", "lastName" : "Doe", "age" : "13", "gender" : "F"}] }
Run Code Online (Sandbox Code Playgroud)
我正在为学生提供Java对象:
public class Student {
public String firstName;
public String lastName;
public String age;
public String gender; // M, F
}
Run Code Online (Sandbox Code Playgroud)
我正在从mongoDB中检索数据,如:
BasicDBObject query = new BasicDBObject();
query.put("user", username);
DBCursor cursor = theCollection.find(query);
while (cursor.hasNext()) {
DBObject theObj = cursor.next();
//How to get the DBObject value to ArrayList …Run Code Online (Sandbox Code Playgroud) 我正在编写一个模型工厂,为此我使用JSON来加载像这样的MongoDB DBObject:
import com.mongodb.util.JSON;
DBObject dbObject = (DBObject) JSON.parse("{'name':'jack', 'age':30}");
Run Code Online (Sandbox Code Playgroud)
现在,我试图分解我的JSON文件,以便我可以加载带有一个JSON文件的DBObject,如果需要,我可以用另一个JSON文件扩充DBObject.
虽然听起来很奇怪,但想象一下有一组不同类型的用户.比如,BasicUser,AdvancedUser等.我可以有一个JSON文件来加载BasicUser,并将AdvancedUser的其他非重叠细节放在另一个JSON文件中.我可以使AdvancedUser扩展BasicUser,因此我可以组合两个JSON文件的内容来创建AdvancedUser模型.
我怎么能做到这样的事情?