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

Store filename and objectid tuple in collection or query direct using the filename

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

现状

我正在使用 GridFSBucketUploadFromBytesAsync 将数据上传到 MongoDB,其中 returns 和 ObjectId 用于引用数据并采用filename 作为参数。

问题

UploadFromBytesAsync的反义词是DownloadAsBytesAsync,用来查询GridFS的数据。但是这个方法只接受 ObjectId 而不是 unique filename ,它在使用 UploadFromBytesAsync 时也会被传递。但是我想使用 filename.

查询数据

可能的解决方案

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

或者我应该使用唯一的 filename 直接从 GridFS 查询? filename 的索引是不是?

编辑!

哦,我认为使用DownloadAsBytesByName可以解决问题。 非常感谢!

只要文件名是唯一的 - 您可以通过文件名使用 get

为确保只有一个文件,您可以使用存储选项:OverWrite

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

-- 编辑 覆盖厕所的电话,如:

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