pymongo用法
from pymongo import MongoClient
#创建数据连接
conn = MongoClient('localhost',27017)
#创建数据库对象
db = conn.stu
#创建集合对象
myset = db.class4
#数据操作
# print(dir(myset))
# 插入文档
myset.insert_many([{'name':'张铁林','King':'乾隆'},{'name':'张国立','King':'康熙'}])
myset.insert_one({'name':'任贤齐','role':'令狐冲'})
myset.insert({'name':'古天乐','role':'杨过'})
myset.insert([{'name':'李若彤','role':'小龙女'},{'name':'刘亦菲','role':'王语嫣'}])
myset.save({'name':'胡军','role':'萧峰'})
myset.save({'_id':1,'name':'林志颖','role':'段誉'})
#查找操作
cursor = myset.find({'role':{'$exists':True}},{'_id':0})
print(cursor)
for i in cursor:
print(i['name'],'--->',i['role'])
print(cursor.next()) #打印下一条文档
for i in cursor.skip(1).limit(2):
print(i)
for i in cursor.sort([('name',1),('role',-1)]):
print(i)
dic = {'$or':[{'role':{'$exists':False}},{'name':'古天乐'}]}
d = myset.find_one(dic)
print(d)
# 修改操作
myset.update_one({'King':{'$exists':True}},{'$set':{'name':'陈小春','King':'韦小宝'}})
myset.update_many({'King':{'$exists':True}},{'$rename':{'King':'role'}})
myset.update({'name':'张国立'},{'$set':{'name':'张卫健','role':'韦小宝'}})
myset.update({'name':'高圆圆'},{'$set':{'role':'周芷若'}},upsert=True)
# 删除操作
myset.delete_one({'name':'高圆圆'})
myset.delete_many({'role':'韦小宝'})
myset.remove({'name':'林志颖'})
#复合操作
print(myset.find_one_and_update({'role':'萧峰'},{'$set':{'name':'黄日华'}}))
#创建索引
index_name = myset.create_index('name')
print(index_name)
index_name = myset.create_index([('role',-1)])
#查看索引
for i in myset.list_indexes():
print(i)
#删除索引
myset.drop_index('name_1')
#删除所有索引
myset.drop_indexes()
#其他索引类型
index = myset.create_index('name',unique=True,sparse=True)
#聚合操作
l=[{'$group':{'_id':'$gender','num':{'$sum':1}}},{'$match':{'num':{'$gt':1}}}]
cursor = myset.aggregate(l)
for i in cursor:
print(i)
#关闭数据库连接
conn.close()
grid_read
from pymongo import MongoClient
import gridfs
#获取数据库对象
conn = MongoClient('localhost',27017)
db = conn.grid
#获取文件集合对象
fs = gridfs.GridFS(db)
#获取文件集
files = fs.find()
for file in files:
#filename属性获取文件名称
print(file.filename)
if file.filename == './img.jpg':
with open(file.filename,'wb') as f:
#从数据库读取
data = file.read()
#写入本地
f.write(data)
conn.close()
grid_write
from pymongo import MongoClient
import gridfs
#获取数据库对象
conn = MongoClient('localhost',27017)
db = conn.grid
#获取文件集合对象
fs = gridfs.GridFS(db)
#将本地文件读取出来写入到数据库中
with open('img_5.jpg','rb') as f:
fs.put(f.read(),filename='mm.jpg')
conn.close()