目前,我正在努力使用文件名从MongoDB GridFS
查询数据。
现状
我正在使用GridFSBucket
和UploadFromBytesAsync
将数据上传到MongoDB,该返回用于引用数据的ObjectId
,并将filename
作为参数。
问题所在
UploadFromBytesAsync
的反对意见DownloadAsBytesAsync
应该用于从GridFS
查询数据。但是此方法仅接受ObjectId
,而不接受使用UploadFromBytesAsync
时也传递的唯一filename
。但是我想使用filename
查询数据。
可能的解决方案
我的想法是,创建一个集合,存储GridFS ObjectId
和GridFS filename
,以映射它们。因此,在查询数据时,我将搜索集合中的filename
,然后使用ObjectId
从GridFS
中获取字节。filename
属性还将获取索引。
还是我应该使用唯一filename
直接从GridFS
查询?filename
索引比吗?
编辑!
哦,我认为使用DownloadAsBytesByName
解决了问题。谢谢!
只要文件名是唯一的 - 就可以使用 get by 文件名。
要确保只有一个文件,您可以使用存储选项:覆盖
您可以在 fs 集合上创建索引以包含文件名字段。
--编辑覆盖的调用类似于:
_db.GridFS. Upload(OverWrite(fileName, binaryStream))