2015-07-11 91 views
0

我有一个游标,它返回的文档大小超过35k。在Java中,我正在迭代该游标来获取文档。它需要超过20秒。任何可能的解决方案来缩短时间mongodb游标迭代性能问题

我的代码:

ArrayList<DBObject> list = new ArrayList<DBObject>() 
collection = mongoDB.getCollection("locations"); 
cursor = collection.find(); 
while (cursor.hasNext()) { 
    list.add(cursor.next()); 
} 
+0

如何使用[“投影”](http://docs.mongodb.org/manual/tutorial/project-fields-from-query-results/)将结果中返回的字段限制为仅限于那些你需要。或者至少如何处理“查询”条件以仅匹配所需的文档,因为您目前正在要求收集集合中的每个文档。除了这些基本条件之外,你没有给予足够的信息让人们做出真正的判断。 –

回答

0

当你拥有它,你真的可以尝试去做的唯一的两项线相结合,减少开销的一点点。

ArrayList<DBObject> list = new ArrayList<DBObject>(); 
    cursor = mongoDB.getCollection("locations").find(); 
    while (cursor.hasNext()) { 
     list.add(cursor.next()); 
    } 

该问题可能少于代码和更多文档的大小。你需要集合中的每个文档吗?有没有办法可以过滤出一些?

+0

是的,我需要该集合中的每个文档,并且每个文档的大小和字段也非常少。这里有一个样本:{_id:1,位置:“印度”,代码:“0-0-1”} – Raj

+0

该集合中有多少文档? – Clint

+0

大约有37K个文件。 – Raj