gpt4 book ai didi

c# - 逐 block 迭代 mongodb 结果

转载 作者:可可西里 更新时间:2023-11-01 09:24:14 29 4
gpt4 key购买 nike

我有一个 mongodb 查询,它获取大约 50,000 个大文档。
这对我的 RAM 来说太多了,因此计算机速度变慢了。

现在我想逐 block 迭代 mongodb 结果。
我想获取前 1000 个文档并处理它们,然后再处理下一个 1000 个文档。

  1. 这是处理大量数据的最佳方式吗?还是我应该一个接一个地服用?

我尝试了以下方法:

MongoCursor<MyDocument> items = collection.Find(query);
long count = items.Count();
int stepSize = 1000;

for (int i = 0; i < Math.Ceiling((double)count / stepSize); i++)
{
List<MyDocument> list = items.SetSkip(i * stepSize).SetLimit(stepSize).ToList();
// process the 1000 ...
}

但是这段代码不起作用。我收到以下错误:

A MongoCursor object cannot be modified once it has been frozen.

  1. 如何解决这个问题?

最佳答案

你可以使用这种方法

        var count = collection.Find(new BsonDocument()).Count();
var stepSize = 1000;

for (int i = 0; i < Math.Ceiling((double)count / stepSize); i++)
{
// put your query here \/\/\/\/\/\/
var list = collection.Find(new BsonDocument()).Skip(i * stepSize).Limit(stepSize).ToList();
// process the 1000 ...
}

如您有兴趣获取和处理驱动程序 2.2.4

关于c# - 逐 block 迭代 mongodb 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38239199/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com