標籤:syn color sort nec gre 監測 stat ati tor
1、使用彙總取最新的即時資料(每一個測站有多條資料,取日期最新的資料。也就是每個測站取最新的值)
var group = new BsonDocument { {"_id",new BsonDocument { {"stationID","$stationID"}, {"stationName","$stationName" } } }, //{"stationID",new BsonDocument{ { "stationID", "$stationID" } } }, {"stationID",new BsonDocument("$last","$stationID")}, { "TimeData",new BsonDocument("$max","$TimeData")}, {"eValue" ,new BsonDocument("$last","$eValue")} };
var collection = MoDataBase.GetCollection<BsonDocument>(tablename);
var list = collection.Aggregate().Group(group).ToListAsync().Result; double value = 0.0; foreach (BsonDocument bsondoc in list) { double evalue = double.TryParse(bsondoc.GetElement("eValue").Value.ToString(), out value) ? value : 0; string stationid = bsondoc.GetElement("stationID").Value.ToString();
2、普通的按照排序取最新的資料
如果一個測站一個表名
/// <summary> /// 擷取資料庫中每條資料對應的時間放到圖表的橫座標上 /// </summary> /// <param name="StatioID">監測站ID</param> /// <param name="PullutionID">指標類型</param> /// <returns></returns> public static List<string> GetChartData(string StatioID, string PullutionID,string StartTime,string EndTime) { List<string> XData = new List<string>(); if (ConnectionString == null) OnCreateDB(); MoDataBase = MoClient.GetDatabase("SSMonitor"); BsonDocument bsonDoc = new BsonDocument(); bsonDoc.Add("TimeData", new BsonDocument() { { "$gte", DateTimeToInt(StartTime) }, { "$lte", DateTimeToInt(EndTime) } }); var collection = MoDataBase.GetCollection<BsonDocument>(string.Format("{0}_{1}_Day", StatioID, PullutionID)); var sort = Builders<BsonDocument>.Sort.Ascending("TimeData"); var list = collection.Find(bsonDoc).Sort(sort).ToList(); foreach (BsonDocument bsondoc in list) { string time = bsondoc.GetElement("MonitorTime").Value.ToString(); XData.Add(time); } return XData; }
C#對MongDB取資料的常用代碼