MongoCursor.Count 与... IAsyncCursor.Count?

MongoCursor.Count vs... IAsyncCursor.Count?

有人知道旧版 MongoCursor 的等效 'Count' 方法在新驱动程序 (IAsyncCursor) 中的位置吗?或者有人知道如何使用 2.0 Async Driver/Methods?

复制它

想法是通过分页(跳过和限制)查询文档并且只有一个数据库命中,获取文档,返回文档的计数以及在没有 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)

您可以使用 2.0 驱动程序使用 IFindFluent fluent query interface returned by Find:

// 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();