问题描述:保存文件到MongoDB后无法读取文件属性。
解决方法:
from pymongo import MongoClient
from gridfs import GridFS
# 连接到MongoDB
client = MongoClient('mongodb://localhost:27017')
# 选择数据库和集合
db = client['mydatabase']
grid_fs = GridFS(db, collection='files')
# 读取文件
with open('file.txt', 'rb') as f:
# 保存文件到GridFS
file_id = grid_fs.put(f, filename='file.txt')
# 获取文件属性
file_doc = grid_fs.get(file_id)
print(file_doc.filename)
print(file_doc.content_type)
from pymongo import MongoClient
import bson
# 连接到MongoDB
client = MongoClient('mongodb://localhost:27017')
# 选择数据库和集合
db = client['mydatabase']
collection = db['files']
# 读取文件属性
file_attributes = {
'filename': 'file.txt',
'content_type': 'text/plain',
'file_size': 1024
}
# 将文件属性编码为BSON
encoded_attributes = bson.BSON.encode(file_attributes)
# 保存文件文档到MongoDB
collection.insert_one({'file': encoded_attributes})
# 读取文件文档
file_doc = collection.find_one({'file': {'$exists': True}})
decoded_attributes = bson.BSON.decode(file_doc['file'])
# 获取文件属性
print(decoded_attributes['filename'])
print(decoded_attributes['content_type'])
print(decoded_attributes['file_size'])
以上是两种解决方法,可以根据实际情况选择适合的方法来保存和读取文件属性。
上一篇:保存文件到带有特殊字符的位置