更新 gridfs 文件对象的元数据
Updating metadata for gridfs file object
我使用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)
但是文档中似乎不存在该选项。我发现 (用解决方案更新了问题)Java 驱动程序似乎提供了一个选项来做这样的事情,但在 python gridfs 中找不到它的等价物。
那么,如何使用 pymongo 使用新计算的元数据值标记我的文件 qcResult
?我在 documentation.
中找不到它
GridFS 将文件存储在两个集合中:
1. 文件集合:存储文件的元数据
2. chunks collection: 存储文件的二进制数据
您可以侵入文件集合。文件集合的名称是 'fs.files',其中 'fs' 是默认存储桶名称。
因此,要更新 QC 结果,您可以这样做:
db.fs.files.update({'_id': fileId}, {'$set': {'QC_RESULT': qcResult}})
我使用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)
但是文档中似乎不存在该选项。我发现
那么,如何使用 pymongo 使用新计算的元数据值标记我的文件 qcResult
?我在 documentation.
GridFS 将文件存储在两个集合中: 1. 文件集合:存储文件的元数据 2. chunks collection: 存储文件的二进制数据
您可以侵入文件集合。文件集合的名称是 'fs.files',其中 'fs' 是默认存储桶名称。
因此,要更新 QC 结果,您可以这样做:
db.fs.files.update({'_id': fileId}, {'$set': {'QC_RESULT': qcResult}})