gpt4 book ai didi

C# mongodb driver 2.2.3 如何设置游标的batchSize

转载 作者:太空狗 更新时间:2023-10-29 18:14:45 24 4
gpt4 key购买 nike

我正在使用 MongoDB 2.2.3 的官方 C# 驱动程序

如何使用 C# 驱动程序设置游标的批处理大小?

使用 javascript 我可以创建一个游标并为其设置批量大小:

var cursor = db.statistics.find(query).batchSize(100)

我可以使用以下语句遍历所有项目:

while(cursor.objsLeftInBatch()>0){
var doc = cursor.next();
//process doc
}

我希望在支持异步/等待的 C# 中具有相同的行为。我知道我可以使用 C# 中的游标,但它的默认批处理大小为 4MB。太匹配了,一次调用就返回给客户端。

最佳答案

您可以在 FindAsyncFindOptions 参数中设置批量大小。

这是显式处理批处理的基本模式:

var filter = new BsonDocument();
var options = new FindOptions<BsonDocument>
{
// Get 100 docs at a time
BatchSize = 100
};

using (var cursor = await test.FindAsync(filter, options))
{
// Move to the next batch of docs
while (await cursor.MoveNextAsync())
{
var batch = cursor.Current;
foreach (var doc in batch)
{
// process doc
}
}
}

但您也可以在游标上调用 ForEachAsync,然后将按需透明地获取批处理:

using (var cursor = await test.FindAsync(filter, options))
{
await cursor.ForEachAsync(doc =>
{
// process doc
});
}

关于C# mongodb driver 2.2.3 如何设置游标的batchSize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36391848/

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