2011-07-11 9 views
3

En utilisant le pilote MongoDb NORM, quelqu'un sait-il s'il est possible de placer le curseur sur une collection 'interrogée' comme ci-dessous, de sorte qu'une 'page' de documents puisse être récupérée ainsi que le nombre total de documents interrogés?MongoDb NORM - Pagination et documents totaux

> var j = db.People.find().skip(2).limit(2) 
> j.count() 
13 
> j 
{ "_id" : NumberLong(25), "Name" : "Ted" } 
{ "_id" : NumberLong(26), "Name" : "Tom" } 

Comme je suppose que ce qui suit effectue le MongoDbquery deux fois ...

totalItems = peopleCollection.Count(queryExpando); 

peopleList = peopleCollection.Find(queryExpando, orderByExpando, pageSize, startIndex).ToList(); 

Répondre

0

Je ne sais pas s'il y a une autre façon, mais vous pouvez probablement utiliser LINQ pour faire ce que vous avez besoin:

var allItems = peopleCollection.AsQueryable(); 
var count = allItems.Count(); 
var peopleList = allItems 
       .Where(p => p.Field == fieldValue) 
       .OrderBy(p => p.OrderByField) 
       .Skip(startIndex) 
       .Take(pageSize); 
Questions connexes