Сбой чтения данных изображения из MongoDB с помощью pymongo - PullRequest
0 голосов
/ 25 марта 2019

У меня есть изображение, сохраненное в MongoDB в таблице следующим способом:

@staticmethod
def upload_member_image(member_id, raw_image):
    Database.insert("files", {"_id": uuid.uuid4().hex,
                              "member_id": member_id,
                              "image": Binary(raw_image.read())
                              })

который звонит:

@staticmethod
def insert(collection, data):
    Database.DATABASE[collection].insert_one(data)

запись сохранена правильно, и я вижу ее в консоли Монго:

db.files.count()
1
> db.files.find()
{ "_id" : "41dbbe5f5d6b49b4b8cb5ed806aa8110", "member_id" : "114f4ff3d8b743a7bbc88a7caf2be928", "image" : BinData(0,"/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2NjIpLCBxdWFsaXR5ID0gNzUK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhM
 ...

сам файл довольно крошечный, его размер: 53,2 КБ (54 541 байт)

Однако, когда я пытаюсь прочитать его из базы данных, у меня ничего не получается, данные не читаются. Я пытаюсь сделать это обычным методом:

@staticmethod
def find(collection, query):
    return Database.DATABASE[collection].find(query)

В чем здесь проблема? Требуется ли для двоичных данных специальная обработка или около того?

Чтобы быть более конкретным здесь выше, вызов базы данных вызывает исключение:

return Database.DATABASE[collection].find_one(query)
TypeError: 'NoneType' object is not subscriptable

и запрос:

{"member_id": member_id}

со значением member_id точно таким, как ожидалось

...