将文件名和对象 id 元组存储在集合中,或使用文件名直接查询



目前,我正在努力使用文件名从MongoDB GridFS查询数据。

现状

我正在使用GridFSBucketUploadFromBytesAsync将数据上传到MongoDB,该返回用于引用数据的ObjectId,并将filename作为参数。

问题所在

UploadFromBytesAsync的反对意见DownloadAsBytesAsync应该用于从GridFS查询数据。但是此方法仅接受ObjectId,而不接受使用UploadFromBytesAsync时也传递的唯一filename但是我想使用filename查询数据。

可能的解决方案

我的想法是,创建一个集合,存储GridFS ObjectIdGridFS filename,以映射它们。因此,在查询数据时,我将搜索集合中的filename,然后使用ObjectIdGridFS中获取字节。filename属性还将获取索引。

还是我应该使用唯一filename直接从GridFS查询?filename索引比吗?

编辑!

哦,我认为使用DownloadAsBytesByName解决了问题。谢谢!

只要文件名是唯一的 - 就可以使用 get by 文件名。

要确保只有一个文件,您可以使用存储选项:覆盖

您可以在 fs 集合上创建索引以包含文件名字段。

--编辑覆盖的调用类似于:

_db.GridFS. Upload(OverWrite(fileName, binaryStream))

最新更新