您的位置:首页 > 数据库 > Mongodb

Asp.net连接Mongodb查询时没有限制条数,造成数据量特别大

2013-01-22 17:53 399 查看
这两天连mongodb的服务器老是有问题,打开任务管理器一看,内网的带宽打的是相当的高,服务器上只有调mongodb的页面,调mongodb走的是内网,所以应该是mongodb传输的数据量太大的问题,因为当连接数只有30个左右的时候,mongostat里的netout居然仍然有4M、5M左右,这个也太夸张了,于是仔细排查了下项目的代码,终于找到了问题的症结。

修改前:

documnetFilterResult = collection.Find(filterDocument).Sort("Date", IndexOrder.Descending).Documents.Take(60).ToList<Document>();

修改后:

documnetFilterResult = collection.Find(filterDocument).Sort("Date", IndexOrder.Descending).Limit(60).Documents.ToList<Document>();

两者乍一看没什么区别,都是按照日期排好序然后取前60条,但是却有本质的区别:

修改前的代码查询mongodb的操作是collection.Find(filterDocument).Sort("Date", IndexOrder.Descending).Documents

修改后的代码查询mongodb的操作是collection.Find(filterDocument).Sort("Date", IndexOrder.Descending).Limit(60).Documents

可以看出,修改前的代码要比修改后的代码的查询结果要大的多(修改前是全部,修改是全部中的前60条),虽然修改前的最后也做了条数限制,但是是得到数据后再处理的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: