コード例 #1
0
 public void Fill(GroupBuilder builder)
 {
     builder.BuildIdClause("year", "{ '$year': '$StartDate' }");
     builder.BuildIdClause("month", "{ '$month': '$StartDate' }");
     builder.BuildIdClause("day", "{ '$dayOfMonth': '$StartDate' }");
     builder.BuildIdClause("hour", "{ '$hour': '$StartDate' }");
 }
コード例 #2
0
        private BsonDocument GetGroupDocument(ActionsChartConfiguration chartConfiguration)
        {
            var groupClauseStrategy = new GroupClauseStrategy();
            var groupBuilder        = new GroupBuilder();

            groupBuilder.BuildIdClause("'userId'", "'$UserId'");

            groupClauseStrategy.Fill(groupBuilder, chartConfiguration.ResultChartInterval);

            groupBuilder.BuildResultClause("$sum", (chartConfiguration.ResultChartType == ResultChartType.Events ? "1" : "\"$Nectar\""));
            return(groupBuilder.Document);
        }
コード例 #3
0
        private IAggregateFluent <BsonDocument> GetDefaultReportColumnQuery(string matchClauseName, int[] matchValues, string resultValue)
        {
            var matchBuilder = new MatchBuilder();
            var groupBuilder = new GroupBuilder();

            matchBuilder.BuildClause(matchClauseName, matchValues, MatchType.Integer);
            groupBuilder.BuildIdClause("'_id'", "'$UserId'");
            groupBuilder.BuildResultClause("$sum", resultValue);

            return(GetCollection().Aggregate()
                   .Match(matchBuilder.Document)
                   .Group(groupBuilder.Document));
        }