#1.索引
1.创建大量数据--集合中插入10万条文档数据for(i=0;i<100000;i++){
db.t1.insert( {name:'test'+i,age:i} )
}2.数据查找性能分析--查找姓名为'test10000'的文档
db.t1.find({name:'test10000'})--使用explain()命令进行查询性能分析
db.t1.find({name:'test10000'}).explain('executionStats')
executionTimeMillis表示整体查询时间,单位毫秒3.建立索引--创建索引--1表示升序,-1表示降序
db.集合.ensureIndex({属性:1})
db.t1.ensureIndex({name:1})4.对索引属性查询--进行查询性能分析
db.t1.find({name:'test10000'}).explain('executionStats')5.附:索引的命令--建立唯一索引,实现唯一约束功能
db.t1.ensureIndex({"name":1},{"unique":true})--联合索引,对多个属性建立一个索引,按照find()出现的顺序
db.t1.ensureIndex({name:1,age:1})--查看文档所有索引
db.t1.getIndexes()--删除索引
db.t1.dropIndex('索引名称')#2.备份与恢复
1.备份
语法:
mongodump-h dbhost -d dbname -o dbdirectory-h: 服务器地址,也可以指定端口号-d: 需要备份的数据库名称-o: 备份的数据存放位置,此目录中存放着备份出来的数据
sudo mkdir test1bak
sudo mongodump-h 服务器ip:27017 -d test1 -o ~/Desktop/test1bak2.恢复
语法:
mongorestore-h dbhost -d dbname --dir dbdirectory-h: 服务器地址-d: 需要恢复的数据库实例--dir: 备份数据所在位置
mongorestore-h 服务器ip:27017 -d test2 --dir ~/Desktop/test1bak/test1#3.与python交互
1.增from pymongo import *
if __name__ == "__main__":try:#1.连接mongo对象
client = MongoCient(host = 'localhost', port = 27017)#2.连接数据库(数据库不存在就直接创建)
db =client.python#3.集合中插入文档(集合不存在就直接创建)
db.stu.insert_one({name:'abc', gender: True})#4.打印成功提示
print('ok')exceptException as e:print('e')2.删from pymongo import *
if __name__ == '__main__':try:#1.链接数据库mongo对象
client = MongoClient(host = 'localhost', port = 27017)#2.链接数据库
db =client.python#3.删除满足条件的第一条文档
db.stu.delete_one({gender:False})#删除满足条件的所有文档
db.stu.delete_many({gender:True})print("ok")exceptException as e:print("e")3.改from pymongo import *
if __name__ == "__main__":try:#1.链接mongo数据库对象
client = MongoClient(host='localhost', post=27017)#2.使用数据库
db =client.python## 3.修改满足条件的第一条文档
#db.stu.update_one({gender:True},{'$set':{name:'haha'}})
#修改满足条件的所有文档
db.stu.update_many({'gender':True},{'$set':{name:'haha'}})print("ok")exceptException as e:print('e')4.查from pymongo import *
if __name__ == "__main__":try:#1.链接mongo对象
client = MongoClient(host = 'localhost', port=27017)#2.链接数据库
db =client.python#3.查询一条文档
#result = db.stu.find_one()
#print(result)
#查询多条文档
result = db.stu.find({'homwtown':'大理'})for item inresult:print("%s--%s" % (itme['name'], item['hometown']))exceptException as e:print('e')5.交互对象--MongoClient对象--使用init方法创建连接对象
client=MongoClient('主机ip', 端口)--Database对象--通过client对象获取获得数据库对象
db=client.数据库名称--Collection对象--通过db对象获取集合对象,col=db.集合名称--主要方法:--对文档对象的操作
insert_one
insert_many
find_one
find
update_one
update_many
delete_one
delete_many--Cursor对象--当调用集合对象的find()方法时,会返回Cursor对象--结合for...in..遍历cursor对象