MogoDB4
from pymongo import MongoClient
#创建链接对象
conn=MongoClient('localhost',27017)
#创建集合对象和数据库对象
db=conn.stu
my_set=db.class1
索引
index=my_set.ensure_index('name')
创建复合索引
index=my_set.ensure_index([('name',1),('Age',1)])
创建唯一索引
index=my_set.ensure_index('name',unique=True)
创建稀疏索引
index=my_set.ensure_index('name',sparse=True)
查看集合中的索引
list_indexes
for i in my_set.list_indexes():
print(i)
删除索引
drop_index():删除某一个索引
my_set.drop_index('name_1')---------name_1是索引的名称
drop_indexes():删除所有索引
my_set.drop_indexes()
聚合操作
aggregate([])
参数:与mongoshell中聚合参数写法一致
返回值:迭代器,同find的返回值
l=[{'$group':{'_id':'$gender','count':{'$sum':1}}},
{'$match':{'count':{'$gt':1}}}
]
cursor=my_set.aggregate(l)
for i in cursor:
print(i)
Mongo大文件存储
from pymongo import MongoClient import bson.binary conn=MongoClient('localhost',27017) db=conn.file my_set=db.img #存储 f=open('picture.jpg','rb') #将读取的二进制流,变为bson格式二进制的字串 content=bson.binary.Binary(f.read()) my_set.insert({'filename':'picture.jpg','data':content}) conn.close()
> show dbs admin 0.000GB config 0.000GB file 0.005GB grid_db 0.005GB local 0.000GB stu 0.000GB > > show tables img
大文件的提取
from pymongo import MongoClient import bson.binary conn=MongoClient('localhost',27017) db=conn.file my_set=db.img data=my_set.find_one({'filename':'picture.jpg'}) with open(data['filename'],'wb') as f: f.write(data['data']) conn.close()