首页 > 解决方案 > C# MongoDB - 从数据库中读取一条记录并将其写入流

问题描述

我正在尝试从我的数据库中返回所有记录。这个集合比较大(250MB),所以我无法将它加载到内存中。我的想法是单独加载每条记录并将其写入NetworkStream.

我的问题:

客户端关闭连接后await writer.WriteLineAsync();
(我试图离开这条线但没有工作)

我的代码:

var writer = new StreamWriter(stream, null, -1, true);
await writer.WriteLineAsync($"HTTP/1.1 200 OK");
await writer.WriteLineAsync($"Content-Type: application/json charset-utf8");
await writer.WriteLineAsync($"Transfer-Encoding: chunked");
await writer.WriteLineAsync();

using (var cursor = await collection.FindAsync(new BsonDocument()))
{
    while (await cursor.MoveNextAsync())
    {
        var batch = cursor.Current;
        foreach (var document in batch)
        {
            byte[] data = Encoding.UTF8.GetBytes(document.ToString());
            await stream.WriteAsync(data, 0, data.Length);
        }
    }
}

感谢您的帮助!

标签: c#mongodb

解决方案


推荐阅读