如何在Java

时间:2018-08-31 02:53:59

标签: java mongodb mongodb-query

我在mongodb robo命令中运行以下查询命令:

db.getCollection('t_data').find({"mid":123456,"datetime":{"$gte" : "2016-09-01" , "$lte" : "2016-9-12"}})

,大约需要2秒才能返回10000条记录。 但是,当我将其放入Java中执行时,要花几分钟才能返回数据(10000条记录)。在{{mid:1,datetime:1}}的中部和日期时间都有一个索引。查询的Java代码如下:如下:

    ......
        DBObject query = new BasicDBObject();
        DBObject timeObj = new BasicDBObject();
        timeObj.put("$gte", "2016-09-01");
        timeObj.put("$lte", "2016-09-12");
        query.put("mid", 123456);
        query.put("datetime", timeObj);

        DBObject queryField = new BasicDBObject();
        queryField.put("pdid", true);
        queryField.put("data", true);
        queryField.put("datetime", true);

        DBCollection coll = queryService.getCollection('t_data'); 
        DBCursor dbcoursor= coll.find(query,queryField);//only this coding line takes serveral minutes.
        while(dbcoursor.hasNext()) {
                ......
        }

    ......

那么在Java和mongodb命令中运行之间有什么区别,查询条件相同,但是查询性能却大不相同,如何改善Java中的查询性能。

0 个答案:

没有答案