我正在使用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
存储我正在寻找的元数据以及其他元数据,但我认为访问以下划线开头的任何东西都是最好的黑客。
那么,我怎样才能获得我最初设置的文件和元数据?
答案 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)}