将大型BSON数据转换为GSON对象的有效方法

时间:2017-07-19 12:24:33

标签: java json mongodb performance mongodb-query

我在一个MongoDB集合中有超过10K的json文档。我想要检索它们&得到一个谷歌json文档数组。以下是我的代码段。

    FindIterable<Document> dbResult = db.getCollection("mycollection", Document.class).find(); 
        JsonArray result = new JsonArray();
        JsonObject jsonObject;
        JsonParser parser = new JsonParser();

        for (Document doc : dbResult) {
             // --> toJson () is time/CPU consuming operation
            jsonObject = parser.parse(doc.toJson()).getAsJsonObject(); 
            result.add(jsonObject);
        }

问题

获取GSON阵列需要太多内存和CPU周期。在分析代码时,我发现它调用了JSON()调用,这会占用大量的CPU周期。

我有以下问题

  1. 上述代码检索一个BSON文件&amp;处理它到GSON对象。有什么方法可以检索多个文档(比如说数组而不是一次一个文档)。

  2. 如何避免toJSON调用,特别是当我要检索大量的json文档时,我觉得它太慢了。我更喜欢直接检索GSON对象而不是先获得BSON的方法 - &gt;到JSON字符串 - &gt;到GSON对象。

  3. 阿图尔

0 个答案:

没有答案