环境Windows10MongoDB4.2Python3.8pymongo3.10.1bson(小图)bson用于存储小于16MB的小文件Python示例代码#encoding:utf-8#author:qbit#date:2020-05-20#summary:StoredwithMongoDB,读取小图片importpymongofrombsonimportbinarydefimg2mongo(coll:pymongo.collection.Collection,imgId:str,imgBuf:bytes):r"""coll:MongoDBcollectionimgId:imageIDimgBuf:imagebinaryBuffer"""print('img2mongo...')bin=binary.Binary(imgBuf)returncoll.insert_one({'_id':imgId,'img_bin':imgBuf})defmongo2img(coll:pymongo.collection.Collection,imgId:str):r"""coll:MongoDBcollectionimgId:imageIDreturn:imagebinaryfile"""print('mongo2img...')dic=coll.find_one({'_id':imgId})returndic['img_bin']if__name__=="__main__":username='xxx'password='xxx'host='192.168.1.72'port=27017dbname='student'connStr=f'mongodb://{username}:{password}@{host}:{port}/{dbname}?authSource=admin'db=pymongo.MongoClient(connStr).get_database()coll=db.imgcoll.drop()withopen('520_in.jpg',mode='rb')作为f:inBuf=f.read()img2mongo(coll,'520',inBuf)outBuf=mongo2img(coll,'520')withopen('520_out.jpg',mode='wb')asf:f.write(outBuf)GridFS(大图)GridFS用来存储更多超过16MB的大文件本文来自qbitsnap
