Mongodb 创建索引并利用索引进行排序

python课上需要实现对经度和纬度进行排序,并筛选数据。

由于给出的数据很大,有1200W吧,而mongodb只能支持32MB的排序。。。

上网上搜了一下,决定创建索引,创建完索引之后就直接对数据进行排序了。

这里贴一下实验的数据类型:

数据类型

这里用的pyhton连接mongdb创建索引。

代码如下:

import pymongo
from pymongo import ASCENDING, DESCENDING
#连接mongodb
client = pymongo.MongoClient('localhost',27017)
#连接数据库
olddb=client['Finally']
#找到要操作的表的索引
mycol=olddb['qucenter']
fincenter=olddb['finqucenter']
mycol.create_index([("longitude", ASCENDING), ("latitude", ASCENDING)])

网上给出的代码都不对啊,有木有,找了好久才找到一个没毛病的。。

创建完之后可以通过 .getIndexes()进行查看索引。

[
    {
        "v" : 2,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_",
        "ns" : "Finally.qucenter"
    },
    {
        "v" : 2,
        "key" : {
            "longitude" : 1,
            "latitude" : 1
        },
        "name" : "longitude_1_latitude_1",
        "ns" : "Finally.qucenter"
    }
]

创建的索引如上:

 可以看到,有两个,一个是我自己创建的一个是系统自带的id号。

之后就是排序操作了,按照关键字进行排序,这次不会报内存错误了。

代码如下:

mydoc = mycol.find().sort([("longitude",ASCENDING),("latitude",ASCENDING)])

 以上就是创建索引并排序的过程。

 
 

猜你喜欢

转载自blog.csdn.net/qq_41410799/article/details/85001373
今日推荐