2016-08-04 3 views
0

Я использую 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 предлагает возможность сделать что-то подобное, но не может найти его эквивалент в gridfs python.

Итак, как я могу использовать pymongo для привязки моего файла к новому вычисляемому значению метаданных qcResult? Я не могу найти его в пределах documentation.

ответ

3

GridFS хранит файлы в двух сборниках: 1. Файлы коллекции: метаданные коллекция 2. ломтей: хранить файлы хранить файлы двоичных данные

Вы можете взломать коллекции файлов. Имя коллекции файлов - «fs.files», где «fs» - это имя ведра по умолчанию.

Таким образом, чтобы обновить результат QC, вы можете сделать так:

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

+0

спасибо - это замечательно. Знаете ли вы, почему это недоступно в качестве метода API GridFS - это связано с соображениями производительности? – Spade

Смежные вопросы