我已将一些PDF,PNG文件上传到mongodb的本地实例。错误地我删除了这些文件,我无法再使用常规恢复选项恢复它们。但是,它们位于我当地的mongodb数据库中。如何在计算机上以原始格式保存它们?
我知道以下内容:
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.
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:0)
好的,我自己想出来了。它可以通过以下方式完成:
在上面的代码中添加以下行:
f = open('tempfigfile.pdf', 'wb')
f.write(fobj.read())
f.close()
这会将文件保存为tempfigfile.pdf。
答案 1 :(得分:0)
此代码会将所有文件从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