2016-04-04 12 views
0

Dies ist mein Code:Führen Anzahl der Dokumente mongo db nach der Aggregation

IAggregateFluent<MongoNavItemFilter> filteredData = _db.GetCollection<MongoNavItemFilter>("NavItemFilters"). 
      Aggregate().Match(query).Group(x => new 
     { 
      ItemID = x.ItemID, 
      x.ItemWebCode, 
      ...  
      ...  
      ...       
     }, g => new 
     { 
      Key = g.Key    
     }) 
     .Project(x => new MongoNavItemFilter() 
     { 
      ItemID = x.Key.ItemID, 
      ItemWebCode = x.Key.ItemWebCode, 
      ...  
      ...  
      ...     
     }); 

Nach diesem Code-I-Daten sortieren und dann permorm "skip-Limit". Aber ich muss Count nach aggregation bekommen. Kann mir jemand erklären wie? Danke für die Hilfe.

Antwort

0

Sie sollten den Akkumulator sum in Ihrer Aggregatgruppe verwenden. Laut mongodb doc ist es ein guter Weg, um in Aggregation zu zählen, und es ist sogar effizienter als count() Methode, wenn Sie mehrere Datenbanken haben. im Grunde

die Syntax ist:

{"sum", new BsonDocument {"$sum", 1} 

Aber ich bin Gebrauch nodejs oder java, nicht C#. :/

Verwandte Themen