MongoDB Java检索变得非常缓慢

MongoDB Java检索变得非常缓慢,java,mongodb,Java,Mongodb,我正在运行一个Java问题,如下所示: MongoDBManager db = new MongoDBManager(dbName, "FreqUserLog"); List<Object> distinctUIDs = db.getDistinct("uid"); int userNum = 0; LinkedList<DBObject> samples = new LinkedList<DBObject>(); for( Object uid_obj :

我正在运行一个Java问题,如下所示:

MongoDBManager db = new MongoDBManager(dbName, "FreqUserLog");
List<Object> distinctUIDs = db.getDistinct("uid");

int userNum = 0;
LinkedList<DBObject> samples = new LinkedList<DBObject>();
for( Object uid_obj : distinctUIDs ) {
    System.out.format( "user %d%n", ++userNum );

    BasicDBObject filter = new BasicDBObject();
    filter.put( "uid", String.valueOf(uid_obj) );
    DBCursor cursor = db.findAll(filter);

    /////////////////////////////////////// 
    while( cursor.hasNext() ) {
        DBObject userlog = cursor.next();

        // do nothing temporarily   
    }
    ///////////////////////////////////////
}

是否有任何理由要对每个不同的
uid
执行新查询,而不使用$in?您可能要执行数千次查询才能将所有数据取回。

数据库中的收集结构是什么,您是否在嵌入式阵列中拥有用户的所有日志?你有什么索引吗?@poiu2000我已经编辑了我的问题。有没有可能,有些文档非常大?你在运行代码时是否运行了mongostat?输出是什么?您是否可以编辑问题以包含部分输出?你对这个问题做过解释吗?您是否可以编辑问题以包含解释的输出?
{"_id": *****
 "url": *****
 "Geo": *****
 "Log count": 3
 "Log0":{
          "event":*****
          "eventcode":*****
          "time": *****
          "ip": *****
          }
  "Log1":{
          "event":*****
          "eventcode":*****
          "time": *****
          "ip": *****
          }
   "Log3":{
          "event":*****
          "eventcode":*****
          "time": *****
          "ip": *****
          }
 }