C# MongoDB花费大量时间查询大量记录

C# MongoDB花费大量时间查询大量记录,c#,mongodb,C#,Mongodb,MongoDB花了很多时间返回800条记录。大约需要30-35秒。而23000+记录的本地数据库需要1秒。这给了我一个线索,当db是远程的时候,问题就出现了 在这方面寻求社区的帮助 _数据库指向IMongoDatabase,此代码使用c#的mongodb驱动程序 var options=新的FindOptions { Sort=Builders.Sort.Descending(x=>x.Id), 批量大小=1000 }; var someEntities=await\u数据库 .GetColle

MongoDB花了很多时间返回800条记录。大约需要30-35秒。而23000+记录的本地数据库需要1秒。这给了我一个线索,当db是远程的时候,问题就出现了

在这方面寻求社区的帮助

_数据库指向IMongoDatabase,此代码使用c#的mongodb驱动程序

var options=新的FindOptions
{
Sort=Builders.Sort.Descending(x=>x.Id),
批量大小=1000
};
var someEntities=await\u数据库
.GetCollection(“SomeEntity”)
.FindAsync(规则=>true,选项).ConfigureAwait(false);
var list=新列表();
while(等待someEntities.MoveNextAsync())
{
list.AddRange(someEntities.Current.ToList());
}

到远程数据库的连接速度是多少?下载800个连接速度慢的大型对象可能是个问题。你确定这是查询还是MindSwipe建议的实际数据传输data@MindSwipe它非常慢,因为服务器位于很远的地方,速度很低,所以您可能有问题。如果这真的是问题所在,那么您编写的任何代码都无法解决此问题,唯一的解决方案是获得到数据库的更快连接。通过下载一个相当大的文件并测量所需的时间,可以看出这是否真的是问题所在。要减少代码所需的时间,您唯一能做的就是减少所选对象的大小,从而减少相同大小的数据数据库的选择?同一版本?长时间可以是查询数据库,也可以是传输的数据量(或两者兼而有之)。我将首先尝试在远程机器上本地运行查询以查看时间。如果需要的时间比远程数据库长。如果需要比数据传输时间短的时间。您可能有网络问题,导致查询速度减慢。
var options = new FindOptions<SomeEntity>
            {
                Sort = Builders<SomeEntity>.Sort.Descending(x => x.Id),
                BatchSize = 1000
            };

            var someEntities = await _database
                .GetCollection<SomeEntity>("SomeEntity")
                .FindAsync(rule => true, options).ConfigureAwait(false);
            var list = new List<SomeEntity>();

            while (await someEntities.MoveNextAsync())
            {
                list.AddRange(someEntities.Current.ToList());
            }