Example #1
0
        private List <BsonDocument> GetAlarmStat(string sDate, string sNDate)
        {
            var stages = new List <IPipelineStageDefinition>();

            //根据日期筛选出数据
            stages.Add(new JsonPipelineStageDefinition <BsonDocument, BsonDocument>("{$match:{IsChecked:true,SendTime:{$gte:new Date(\"" + sDate + "\"),$lte:new Date(\"" + sNDate + "\")}}}"));
            //拆分嵌套文件
            stages.Add(new JsonPipelineStageDefinition <BsonDocument, BsonDocument>("{$unwind:\"$Data\"}"));
            //统计数据
            stages.Add(new JsonPipelineStageDefinition <BsonDocument, BsonDocument>("{$group:{ _id:{Client:\"$ClientCode\",Device:\"$Data.Code\"},HumAlarm:{$sum:\"$Data.State.HumidityAlarm\"},TemAlarm:{$sum:\"$Data.State.TemperatureAlarm\"}}}"));

            var pipeline = new PipelineStagePipelineDefinition <BsonDocument, BsonDocument>(stages);

            return(MongoHandler.GetBsonCollection <B0C0Data>().AggregateAsync(pipeline).Result.ToList());
        }
Example #2
0
        private List <BsonDocument> GetMaxMinAvgStat(string sDate, string sNDate)
        {
            var stages = new List <IPipelineStageDefinition>();

            //根据日期筛选出数据
            stages.Add(new JsonPipelineStageDefinition <BsonDocument, BsonDocument>("{$match:{IsChecked:true,SendTime:{$gte:new Date(\"" + sDate + "\"),$lte:new Date(\"" + sNDate + "\")}}}"));
            //拆分嵌套文件
            stages.Add(new JsonPipelineStageDefinition <BsonDocument, BsonDocument>("{$unwind:\"$Data\"}"));
            //过滤无效数据
            stages.Add(new JsonPipelineStageDefinition <BsonDocument, BsonDocument>("{$match:{\"Data.Valid\":true}}"));
            //统计数据
            stages.Add(new JsonPipelineStageDefinition <BsonDocument, BsonDocument>("{$group:{ _id:{Client:\"$ClientCode\",Device:\"$Data.Code\"},maxHum:{$max:\"$Data.Humidity\"},minHum:{$min:\"$Data.Humidity\"},avgHum:{ $avg:\"$Data.Humidity\"},maxTem:{$max:\"$Data.Temperature\"},minTem:{$min:\"$Data.Temperature\"},avgTem:{$avg:\"$Data.Temperature\"}}}"));

            var pipeline = new PipelineStagePipelineDefinition <BsonDocument, BsonDocument>(stages);

            return(MongoHandler.GetBsonCollection <B0C0Data>().AggregateAsync(pipeline).Result.ToList());
        }