Я могу сохранить двоичный файл на сервере mongodb через следующий код:
using (var fs = new FileStream("C:\\Data_w.bin", FileMode.Open))
{
var gridFsInfo = database.GridFS.Upload(fs, fileName);
}
Я вижу файл, сохраненный на сервере. Размер файла составляет около 42 МБ. Я хочу прочитать файл в кусках, т.е. Читать один раз за один раз и десериализовать двоичные данные и скрыться в браузере.
Как я могу прочитать данные в кусках из mongodb через драйвер С#?
В соответствии с моим пониманием следующая командная строка читает только 0-й кусок из большого файла:
db.fs.chunks.find({"files_id": ObjectId ("53f74e2f3f69bd30142f2193"), "n": 0})
но не знаю, как писать то же самое в С#. Пожалуйста помоги
Вы можете открыть файл GridFS.Open(string remoteFileName, режим FileMode), который возвращает MongoGridFSStream и использовать его, как и любой другой System.IO.Stream. Он не загружает куски, которые вы не используете, и буферы для вас, поэтому вам не нужно заниматься реализацией. Таким образом, вы можете просто прочитать часть потока, очистить браузер, прочитать другую, сделать флеш и так далее.
Отсутствует документация для драйвера С#, исходный код - лучшая документация.