【问题标题】:Retrieve file metadata using python GridFS使用 python GridFS 检索文件元数据
【发布时间】:2016-02-14 05:25:32
【问题描述】:

我正在使用 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 存储我正在寻找的元数据以及其他元数据,但我认为访问以下划线开头的任何内容充其量只是一种黑客攻击。

那么,如何获取我最初设置的文件和元数据?

【问题讨论】:

    标签: python mongodb pymongo pymongo-3.x


    【解决方案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)}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-01
      • 2014-03-29
      • 2013-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-08
      • 1970-01-01
      相关资源
      最近更新 更多