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()); }
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()); }