使用python GridFS检索文件元数据

时间:2015-11-12 18:50:14

标签: python mongodb pymongo pymongo-3.x

我正在使用Python访问GridFS,并希望同时访问文件及其元数据。

Python版本为2.7,MongoDB版本为3.0.7。操作系统是Ubuntu 14.04。

文件存储如下:

>>> fs = GridFS(db, "gridfstest")
>>> fs.put(
            "HELLO WORLD", 
             test_metadata ="testing", 
             other_metadata="other"
           )

检索如下:

>>> retrieved_file = fs.find_one()
>>> retrieved_file.read()
b'HELLO WORLD'
>>> print(retrieved_file.metadata)
None

我期待.metadata成为元数据字典。 retrieved_file._file存储我正在寻找的元数据以及其他元数据,但我认为访问以下划线开头的任何东西都是最好的黑客。

那么,我怎样才能获得我最初设置的文件和元数据?

1 个答案:

答案 0 :(得分:1)

您的元数据存在于files Collection中,这意味着在" gridfstest.files"因此,要检索您的元数据,您需要查询该集合。

In [54]: col = db.gridfstest.files.findOne()

In [55]: col.find_one()
Out[55]: 
{'_id': ObjectId('5644e9220acf451b36f22438'),
 'chunkSize': 261120,
 'encoding': 'utf8',
 'length': 11,
 'md5': '361fadf1c712e812d198c4cab5712a79',
 'other_metadata': 'other',
 'test_metadata': 'testing',
 'uploadDate': datetime.datetime(2015, 11, 12, 19, 31, 46, 175000)}