加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – MongoCursor.Count vs … IAsyncCursor.Count?

发布时间:2020-12-15 22:16:34 所属栏目:百科 来源:网络整理
导读:有没有人知道遗留MongoCursor的等效’Count’方法在哪里但在新驱动程序(IAsyncCursor)中?或者任何人都知道如何使用2.0异步驱动程序/方法复制它? 我们的想法是通过分页(跳过和限制)查询文档,只有一个数据库命中,获取文档,返回文档的计数和没有LIMIT的所有文
有没有人知道遗留MongoCursor的等效’Count’方法在哪里但在新驱动程序(IAsyncCursor)中?或者任何人都知道如何使用2.0异步驱动程序/方法复制它?

我们的想法是通过分页(跳过和限制)查询文档,只有一个数据库命中,获取文档,返回文档的计数和没有LIMIT的所有文档的计数

使用MongoDB C#传统驱动程序,我曾经这样做过:

MongoCursor<SaleOrderModel> result = collection.FindAs<SaleOrderModel>(query);

result.setSkip(20);
result.setLimit(10);

var saleOrders = result.ToList<SaleOrderModel>(); // 'limited' documents
var size = result.Size(); // Count of 'limited' documents
var count = result.Count(); // Count of all documents found (even if they are not returned)

解决方法

您可以使用 Find返回的 IFindFluent fluent查询界面使用2.0驱动程序执行此操作:

// Create the IFindFluent<SaleOrderModel> query.
var collection = db.GetCollection<SaleOrderModel>("saleOrders");
var filter = Builders<SaleOrderModel>.Filter.Eq(so => so.vendorId,5);
var query = collection.Find(filter);

// Get the count of all docs matching the query.
var count = await query.CountAsync();

// Execute the query with skip and limit.
var saleOrders = await query.Skip(20).Limit(10).ToListAsync();
var size = saleOrders.Count();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读