java - 如何返回收到的mongodb数据?

标签 java eclipse mongodb

public static ArrayList<DBObject> retrieve(String dbName, String collectionName, String key, String value)
{
    ArrayList<DBObject> ar = new ArrayList();
    MongoClient mongoClient = new MongoClient(new 
    MongoClientURI("mongodb://localhost:27017"));
    @SuppressWarnings("deprecation")
    DB database = mongoClient.getDB(dbName);
    DBCollection collection = database.getCollection(collectionName);
    BasicDBObject Query = new BasicDBObject();
    Query.put(key, value);
    DBCursor cursor = collection.find(Query);
    while(cursor.hasNext()) {
        LOGGER.info(cursor.next().toString());
        ar.add(cursor.next());
    }
    LOGGER.info(ar.toString());
    return(ar);

}

这是我的类函数,用于从数据库检索数据。我需要将此数据返回给另一个类。这是正确的方法吗?如果没有,我该怎么办?

数据示例:

[
    {
    "id": "234567",
    "reportType": "Thyroid",
    "age": 21,
    "gender": "Female",
    "onThyroxine": false,
    "onAntiThyroideMed": false,
    "sick": false,
    "pregnant": false,
    "recentThryoidSurgery": false,
    "lithium": false,
    "goitre": false,
    "tumor": false,
    "hypopituitary": false,
    "i131Treatment": false,
    "fti": 11,
    "tbg": 123,
    "tt4": 23,
    "t3": 120,
    "t4U": 12,
    "tsh": 120
    }
]

最佳答案

由于您需要返回查询结果中找到的所有文档,因此可以使用 DBCursor 的 toArray() 方法。

引用 - http://api.mongodb.com/java/current/com/mongodb/DBCursor.html

基本上是这样的 -

public static ArrayList<DBObject> retrieve(String dbName, String collectionName, String key, String value) {
    MongoClient mongoClient = new MongoClient(new 
    MongoClientURI("mongodb://localhost:27017"));
    @SuppressWarnings("deprecation")
    DB database = mongoClient.getDB(dbName);
    DBCollection collection = database.getCollection(collectionName);
    BasicDBObject Query = new BasicDBObject();
    Query.put(key, value);
    return collection.find(Query).toArray();    
}

关于java - 如何返回收到的mongodb数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48722103/

相关文章:

java - 客户端/服务器 java 应用程序中的 JVM_Bind 错误

java - JSP 和 Servlet 如何相互交互

c# - 查询 documentdb 中的子字段

java - mongodb JavaScript 查询

java - 使用 Jersey2.0 访问 JerseyTest 中的 springbean

java - 如何使现有的maven父项目成为新创建的maven项目的子项目

java - Gradle Spring Boot依赖关系:包含为bootRun/排除为bootJar

java - Eclipse 中的 JPA 项目 : how to auto-generate entity classes from DB tables

c++ - 带有 Qt 集成的 C++ 中的无效参数

java - 如何从文件加载 Java Mongo 驱动程序的 MongoClientOptions?