我正在使用 Mongodb-java-driver , Java 8 , MongoDB 作为后端。
下面是我用来执行操作的代码,
public JsonObject getAllRecords(String sortQuery) throws ParseException, MongoOperatorException {
DBCursor dbCursor = null;
try {
JsonObject jsonObject = new JsonObject();
dbCursor = dbCollection.find(dbObject).sort(sortObject).batchSize(500);
JsonArray resultsJsonArray = new JsonArray();
while(dbCursor.hasNext()) {
/**
* Actual: loop 10 million records, Tomcat throws error: java.lang.OutOfMemoryError: Java heap space
* Expectation: Somehow I want to create jsonObject stream from DBCursor and return
*/
resultsJsonArray.add(dbCursor.next());
}
jsonObject.add("results", resultsJsonArray);
} catch(Exception ex) {
// log expection
} finally {
if(dbCursor != null) {
dbCursor.close();
}
}
// Can we stream this jsonObject ?
return jsonObject;
}
问题:
我想以某种方式从DBCursor创建jsonObject流并返回,任何帮助将不胜感激.....
注意:此处不能选择分页。我需要从数据库中获取任何数据流。