更新gridfs文件对象的元数据

时间:2016-08-04 05:31:36

标签: python mongodb pymongo gridfs

我使用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内找到它。

1 个答案:

答案 0 :(得分:3)

GridFS将文件存储在两个集合中: 1.文件集合:存储文件的元数据 2. chunks collection:存储文件的二进制数据

您可以入侵文件集合。文件集合的名称是'fs.files',其中'fs'是默认的存储桶名称。

因此,要更新QC结果,您可以这样做:

db.fs.files.update({'_id': fileId}, {'$set': {'QC_RESULT': qcResult}})