mongodb:如何用c#读取块中的二进制文件

时间:2014-08-22 15:17:47

标签: c# .net mongodb

我可以通过以下代码在mongodb服务器中保存二进制文件:

using (var fs = new FileStream("C:\\Data_w.bin", FileMode.Open))
{
    var gridFsInfo = database.GridFS.Upload(fs, fileName);
}

我可以看到保存在服务器中的文件。该文件大小约为42MB。我想以块的形式读取文件,即一次读取一次块,然后反序列化二进制数据并刷新到浏览器。

如何从mongodb到c#驱动程序读取数据?

根据我的理解,命令行只能从大文件中读取第0个块:

db.fs.chunks.find({“files_id”:ObjectId(“53f74e2f3f69bd30142f2193”),“n”:0})

但不知道如何在c#中编写相同内容。请帮忙

1 个答案:

答案 0 :(得分:0)

您可以打开返回MongoGridFSStream的文件GridFS.Open(字符串remoteFileName,FileMode模式),并像使用任何其他System.IO.Stream一样使用它。它不会下载您不会使用的块并为您缓冲块,因此无需关心实现。所以你可以只读取流的一部分,刷新浏览器,读取另一部分,刷新等等。

缺少C#驱动程序的文档source code is the best documentation