mongodb 索引以及与 python 交互

mongodb 索引:
1,mongodb支持索引,以提升查询速度
2,mongodb 是介于关系型与非关系型数据库之间的数据库
3,可以索引文档中的任何字段
# 向 t1 数据库插入 10万条数据 大约需要 10秒
for(i=0;i<100000;i++){db.t1.insert({name:'test'+i,age:i})}

# 查找 第 10000 条数据 explain() 可以开启性能测试 executionTimeMillis为 39 毫秒
db.t1.find({name:'test10000'}).explain('executionStats')

# 为集合 name字段 建立索引
db.t1.ensureIndex({name:1})
# 建立索引之后执行时间是 0 毫秒
注意: 查询 age 字段的话 还是 39 毫秒 因为此字段没有设立索引
db.t1.find({name:'test10000'}).explain('executionStats')


#查看文档所有索引
db.t1.getIndexes()
# 删除 联合索引 
db.t1.dropIndex({"name":1,"age":1})
# 建立唯一索引
db.t1.ensureIndex({"name":1},{"unique":true})
# 建立联合索引
db.t1.ensureIndex({name:1,age:1})
# 对于联合索引的查询 还是按照 联合索引的顺序进行查找 前后一样 不能只查询一个
db.t1.find({name:'test10000'},{age:100000}).explain('executionStats')
Mongodb 与python 交互需要安装 pymongo 包
对于 pymongo 包之中的对象介绍:
MongoClient对象:
client = MongoClient('主机ip',端口)

Database对象:
# client对象获取获得数据库对象
db = client.数据库名称

Collections对象:
# 通过db对象获取集合对象
collections = db.集合名称

集合操作方法:
    '''
        insert_one:加入一条文档对象
        insert_many:加入多条文档对象
        find_one:查找一条文档对象
        find:查找多条文档对象
        update_one:更新一条文档对象
        update_many:更新多条文档对象
        delete_one:删除一条文档对象
        delete_many:删除多条文档对象
    '''

posted @ 2018-10-18 14:28  十七楼的羊  阅读(1880)  评论(0编辑  收藏  举报