Пимонго не может получить файлы
-
23-12-2019 - |
Вопрос
Я играю с Mongodb (Gridfs) для хранения файлов (zip) и попытаться получить их с помощью Python «Pymongo», но не работает, как и ожидалось, я не могу понять, как получить файл (ы)Я добавил ...
Ниже приведен код, который я бежал от простого (Python 3.4.1)
>>> db = Connection(port=31000, host="localhost").fs
>>> db.name
'fs'
>>> db.validate_collection
<bound method Database.validate_collection of Database(Connection('localhost', 31000), 'fs')>
>>> blob_store = gridfs.GridFS(db, collection='bstore')
>>> local_db = dict()
>>> k = r'd:\test\my-scripts.zip'
>>> local_db[k] = blob_store.put(open(k, 'rb'))
[** File is saved, i checked using robomongo **]
>>> blob_store.exists(filename=k)
False
>>> blob_store.exists("53da7cb1b3b44b13e0e27721")
False
>>> local_db
{'d:\\test\\my-scripts.zip': ObjectId('53da7cb1b3b44b13e0e27721')}
>>> blob_store.list()
[]
>>> b = gridfs.GridFS(db, collection='bstore.files')
>>> b.list()
[]
>>> x = blob_store.get(Objectid("53da7cb1b3b44b13e0e27721"))
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
x = blob_store.get(Objectid("53da7cb1b3b44b13e0e27721"))
NameError: name 'Objectid' is not defined
>>> local_db
{'d:\\test\\my-scripts.zip': ObjectId('53da7fd0b3b44b13e0e2772a')}
>>> blob_store.find()
<gridfs.grid_file.GridOutCursor object at 0x0000000003DC1828>
>>> a = blob_store.find(ObjectId("53da7fd0b3b44b13e0e2772a"))
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
a = blob_store.find(ObjectId("53da7fd0b3b44b13e0e2772a"))
NameError: name 'ObjectId' is not defined
.
Теперь я не уверен, как получить файл из Mongo?Я упускаю что-то очевидное?
Спасибо
Решение
Вам нужно импортировать символ ObjectID:
from bson import ObjectId
.
Тогда ваш код должен работать.
Не связан с StackOverflow