使用Python保存存储在Mongodb GridFS中的pdf文件
我已经上传了一些PDF,PNG文件到mongodb的本地实例。我错误地删除了这些文件,无法再使用常规恢复选项恢复它们。但是,它们在我的本地mongodb数据库中。如何将它们以原始格式保存到计算机上 我知道:使用Python保存存储在Mongodb GridFS中的pdf文件,python,mongodb,pymongo,gridfs,Python,Mongodb,Pymongo,Gridfs,我已经上传了一些PDF,PNG文件到mongodb的本地实例。我错误地删除了这些文件,无法再使用常规恢复选项恢复它们。但是,它们在我的本地mongodb数据库中。如何将它们以原始格式保存到计算机上 我知道: import pymongo as pym import gridfs def connectToDb(): client = pym.MongoClient('mongodb://localhost:27017/') db = client.questionbank
import pymongo as pym
import gridfs
def connectToDb():
client = pym.MongoClient('mongodb://localhost:27017/')
db = client.questionbank
collectn = db.questionbank
fs = gridfs.GridFS(db)
return db, collectn, fs
db, collectn, fs = connectToDb()
filelist = list( db.fs.files.find({}, {"_id": 1, "filename": 1}) )
fileid = filelist[0]['_id']
fobj = fs.get(fileid)
## I don't know what to do after this. I think I cannot use read since I don't
## want the string. I want to save the pdf file as a pdf file.
任何帮助都将不胜感激。提前谢谢。好的,我自己想出来的。可通过以下方式完成: 在上述代码中添加以下行:
f = open('tempfigfile.pdf', 'wb')
f.write(fobj.read())
f.close()
这将文件保存为tempfigfile.pdf。此代码将从mongodb gridfs将所有文件保存到您的本地文件夹
i=0
cursor=fs.find()
while(i < cursor.count()):
fi=cursor.next()
with open("C:\\localfolder\\"+fi.filename,"wb") as f:
f.write(fi.read())
f.closed
i=i+1
i=0
cursor=fs.find()
而(i