Re: Paging collection with C# Mongo Driver

From: Wan Bachtiar <wan.bachtiar@xxxxxxxxxxx>
To: mongodb-user <mongodb-user@xxxxxxxxxxxxxxxx>
Date: Wed, 20 Apr 2016 23:00:34 -0700 (PDT)
Why ads?


Is there a way I can process the request to process next NumberOfRecord 
only, and return TotalOfRecords when PageIndex is requested?

Hi Nam, 

It’s been a while since you posted the question, have you found a solution ?

Based on the context of question I assumed you are using ASP.Net GridView 
to do pagination. There are a number of ways to do pagination in MongoDB 
and *it depends* on your use case and dataset and performance requirements. 

If you have a large dataset, try to use the custom pagination of GridView 
by setting AllowCustomPaging="true". You would need to write your own 
methods to step through the pages. For more information on custom paging of 
GridView see :

   - Custom Paging with GridView Control 
   <http://www.c-sharpcorner.com/UploadFile/99bb20/custom-paging-with-gridview-control-in-Asp-Net-4-5/>. 
   
   - Efficiently Paging through Large Amounts of Data 
   <https://msdn.microsoft.com/en-us/library/bb445504.aspx

In terms of querying MongoDB, you could try using the combination of skip 
<https://docs.mongodb.org/manual/reference/method/cursor.skip/> and ranged 
pagination of _id and only show a handful of pages. For example:

First ... 21 22 23 24 25 ... Last

This way you don’t have to list all of the pages, and reducing the cost of 
skipping too many records. An example snippet of C# query that combines 
range and skip would be:

var pagesize = 10;var filterBuilder = Builders<BsonDocument>.Filter;var filter = filterBuilder.Lte("_id", currentObjectId);var sort = Builders<BsonDocument>.Sort.Descending("_id");var result = collection.Find(filter)
                             .Skip( pagenum * pagesize)
                             .Limit(pagesize)
                             .Sort(sort).ToList();

See also the answer of StackOverflow: MongoDB Ranged Pagination 
<http://stackoverflow.com/questions/9703319/mongodb-ranged-pagination>. 

Kind regards, 

Wan.


-- 
You received this message because you are subscribed to the Google Groups "mongodb-user"
group.

For other MongoDB technical support options, see: https://docs.mongodb.org/manual/support/
--- 
You received this message because you are subscribed to the Google Groups "mongodb-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mongodb-user+unsubscribe@xxxxxxxxxxxxxxxx.
To post to this group, send email to mongodb-user@xxxxxxxxxxxxxxxx.
Visit this group at https://groups.google.com/group/mongodb-user.
To view this discussion on the web visit https://groups.google.com/d/msgid/mongodb-user/630cb20d-049e-42c9-8afd-b67d9de81c73%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Why ads?