gridfs - спецификация для хранения больших объектов в MongoDB¶
GridFS¶
- class
gridfs.
GridFS
(database, collection='fs')¶ Объект для работы с GridFS
database -
pymongo.database.Database
collection - опционально, коллекция в БД
-
delete
(file_id)¶ Удаляет файл из бд
Warning
если при удалении, кто-то попытается прочесть файл, то он может прочитать и не весь файл
Note
Удаление не существующего файла не считается ошибкой
-
exists
(document_or_id=None, **kwargs)¶ Булево, файл существует
>>> fs.exists(file_id) >>> fs.exists({"_id": file_id}) >>> fs.exists(_id=file_id) >>> fs.exists({"filename": "mike.txt"}) >>> fs.exists(filename="mike.txt") >>> fs.exists({"foo": {"$gt": 12}}) >>> fs.exists(foo={"$gt": 12})
-
find
(*args, **kwargs)¶ Возвращает курсор
gridfs.grid_file.GridOutCursor
итератор по найденным файлам.filter - опционально, фильтр для поиска
skip - опционально, количесвто файлов которые надо пропустить
limit - опционально, количесвто документов которые надо вернуть
no_cursor_timeout - опционально, булево, если ложно (по умолчанию) то курсов закрывается по истечении 10 минут неактивности сервера БД.
sort - опционально, список ключей для сортировки
for grid_out in fs.find({"filename": "lisa.txt"}, no_cursor_timeout=True): data = grid_out.read() most_recent_three = fs.find().sort("uploadDate", -1).limit(3)
-
find_one
(filter=None, *args, **kwargs)¶ Возвращает один файл по условию, аргументы аналогичны
find()
>>> file = fs.find_one({"filename": "lisa.txt"})
-
get
(file_id)¶ Возвращает файл по идентификатору
-
get_last_version
(filename=None, **kwargs)¶ Возвращает последнюю версию файла
-
get_version
(filename=None, version=-1, **kwargs)¶ Возвращает файл указанной версии
Возбуждает
gridfs.errors.NoFile
если файл не найден
-
list
()¶ Список всех файлов БД
-
new_file
(**kwargs)¶ Возвращает
gridfs.grid_file.GridIn
, ново созданный файл в БД
-
put
(data, **kwargs)¶ Кладет новую информацю в файл
data - строка или файлобый объект
try: f = new_file(**kwargs) f.write(data) finally: f.close()