我使用GridFS如下:
connection = MongoClient(host='localhost')
db = connection.gridfs_example
fs = gridfs.GridFS(db)
fileId = fs.put("Contents of my file", key='s1')
文件最初存储在GridFS中之后,我有一个进程可以计算与文件内容相对应的其他元数据。
def qcFile(fileId):
#DO QC
return "QC PASSED"
qcResult = qcFile(fileId)
如果我能做的话会很棒:
fs.update(fileId, QC_RESULT = qcResult)
但该选项似乎不存在于文档中。我发现here(用解决方案更新的问题)Java驱动程序似乎提供了这样的选项,但是在python gridfs中找不到它的等价物。
那么,我如何使用pymongo使用新计算的元数据值qcResult
来标记我的文件?我无法在documentation内找到它。
答案 0 :(得分:3)
GridFS将文件存储在两个集合中: 1.文件集合:存储文件的元数据 2. chunks collection:存储文件的二进制数据
您可以入侵文件集合。文件集合的名称是'fs.files',其中'fs'是默认的存储桶名称。
因此,要更新QC结果,您可以这样做:
db.fs.files.update({'_id': fileId}, {'$set': {'QC_RESULT': qcResult}})