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()

  

posted @ 2019-07-24 17:22  sike8  阅读(85)  评论(0编辑  收藏  举报