标签: dbobject

使用MongoDB Java驱动程序将DBObject转换为POJO

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)

编辑:很明显,只是做这样的事情.

java mongodb dbobject

17
推荐指数
4
解决办法
5万
查看次数

使用Spring Data将DBObject插入MongoDB

我尝试使用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?

mongodb dbobject spring-data-mongodb

8
推荐指数
1
解决办法
1万
查看次数

从MongoDB检索值时将DBObject转换为Java对象

在我的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)

java mongodb mongodb-java dbobject

8
推荐指数
2
解决办法
3万
查看次数

MongoDB - 合并两个DBObject

我正在编写一个模型工厂,为此我使用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模型.

我怎么能做到这样的事情?

java mongodb dbobject

1
推荐指数
1
解决办法
3763
查看次数