zoukankan      html  css  js  c++  java
  • C#对MongDB取数据的常用代码

    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语言几种常见的字符串输入
    基于单链表实现集合的交集、并集、差集的运算
    关于单链表的一些基本操作
    输入20个整数存放到一个单向链表中,并顺序逆序输出
    《你的灯亮着吗》阅读笔记
    场景调研
    站立会议总结09
  • 原文地址:https://www.cnblogs.com/wjr0117/p/9083067.html
Copyright © 2011-2022 走看看