我可以通过以下代码在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#中编写相同内容。请帮忙
答案 0 :(得分:0)
您可以打开返回MongoGridFSStream的文件GridFS.Open(字符串remoteFileName,FileMode模式),并像使用任何其他System.IO.Stream一样使用它。它不会下载您不会使用的块并为您缓冲块,因此无需关心实现。所以你可以只读取流的一部分,刷新浏览器,读取另一部分,刷新等等。
缺少C#驱动程序的文档source code is the best documentation。