MongoDB Java检索变得非常缓慢
我正在运行一个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 :
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": *****
}
}