Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 提高MongoDB查询的性能_Java_Mongodb_Optimization_Mongodb Java - Fatal编程技术网

Java 提高MongoDB查询的性能

Java 提高MongoDB查询的性能,java,mongodb,optimization,mongodb-java,Java,Mongodb,Optimization,Mongodb Java,我有一个4GB的mongodb数据库,拥有与地理数据的ip连接。数据如下所示: { "_id" : ObjectId("51d1c15d3a673a1a57f20251"), "IP_FROM" : NumberLong(1168612352), "IP_TO" : NumberLong(1168612607), "COUNTRY_CODE" : "US", "COUNTRY_NAME" : "UNITED STATES", "REGION" : "MICHIGAN", "CITY" : "LA

我有一个4GB的mongodb数据库,拥有与地理数据的ip连接。数据如下所示:

{ "_id" : ObjectId("51d1c15d3a673a1a57f20251"), "IP_FROM" : NumberLong(1168612352), "IP_TO" : NumberLong(1168612607), "COUNTRY_CODE" : "US", "COUNTRY_NAME" : "UNITED STATES", "REGION" : "MICHIGAN", "CITY" : "LANSING", "LATITUDE" : 42.73328, "LONGITUDE" : -84.637765 }
我有查询数据库的java代码:

BasicDBObject query = new BasicDBObject("IP_TO", new BasicDBObject("$gte", ipNum));

DBCursor cursor = ipCollection.find(query).limit(1);
    try {
        while (cursor.hasNext()) {
            DBObject next = cursor.next();
            latitude = (Double) next.get("LATITUDE");
            longitude = (Double) next.get("LONGITUDE");
            System.out.println("LATITUTDE: " +latitude+" LONGITUDE: "+ longitude);
            break;
        }
    } finally {
        cursor.close();
    }
当我运行db.currentOp时,我得到:

"query" : {
            "IP_TO" : {
                "$gte" : NumberLong(1625798904)
            }
        }

这太长了。有什么方法可以加快这个查询速度吗?

关于IP\u-to和IP\u-FROM的索引可以帮助您思考:MongoDB是解决方案的一部分还是问题的一部分?说真的,地理ip查找非常简单。在没有任何第三方软件的情况下,只需几行代码就可以每秒进行数千万次的查找。@nosid我更喜欢使用mongodb数据库。我已经有了一个可行的解决方案,其中包括使用GET请求来freegeoip。你在想什么?它维护得好吗?我使用MaxMind的数据库。我下载并转换文件,并从我的Python应用程序中进行查找。正如我所说,它的速度足够快,每秒可以用大约30行代码进行数千万次ip查找。