mongodb存储大文件

使用mongoDB的gridfs模块存储大于16m的文档

1. 使用gridfs

# 一些参考网址:https://psabhay.com/posts/mongodb/mongodb-gridfs-using-python/
# 官网中文手册:https://mongodb.net.cn/manual/tutorial/install-mongodb-on-ubuntu/
# 关于gridfs的:https://cloud.tencent.com/developer/article/1794164
# https://blog.csdn.net/qq_38923792/article/details/107765422
from pymongo import MongoClient
from gridfs import GridFS
mongo_url='mongodb://xx:x@127.0.0.1:27017/xxx?authSource=admin'
client = MongoClient(mongo_url)
db=client['mycol']
collection=db['collection_name']
gdb=GridFS(db,collection=collection.name)
data_dict={}# 要存储的文档,遇到图片之类的ndarry数据,可以使用pickle模块冲刷为二进制字节存入。
gdb.put(dict_json,filename=str(file_id))# filename 是使用者定义的唯一识别id,后面可以用来检索
# 检索
data_dict=gdb.get(file_id).read()
# 删除mongoDB中存储的文档
obj_id=.collection.files.find_one({'filename':file_id})['_id']
del_chunks_result=collection.chunks.delete_many({'files_id':obj_id})
del_file_result=collection.files.delete_one({'_id':obj_id})
if del_chunks_result.deleted_count==125 and del_file_result.deleted_count==125:
   log.log(1, "Delete file {} successfully.".format(file_id))
# 全部删除
#self.collection.files.delete_many({})
#self.collection.chunks.delete_many({})
self.collection.files.drop()
self.collection.chunks.drop()
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值