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 : ;
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取数据的常用代码的更多相关文章
- MongoDBDao 工具类(包含分页取数据)
mongdb工具类 package e16wifi.statistic.com.mongodb; import java.util.ArrayList; import java.util.List; ...
- HighChart 实现从后台取数据来实时更新柱状和折线组图
前段时间公司让弄图表,给我说有HighCharts这个js插件,于是上网上搜,由于本人是写后端的,对于JavaScript和jQuery不是很熟悉,虽然找到了模板,但是还是不明白,所以一点一点的改,但 ...
- canal从mysql拉取数据,并以protobuf的格式往kafka中写数据
大致思路: canal去mysql拉取数据,放在canal所在的节点上,并且自身对外提供一个tcp服务,我们只要写一个连接该服务的客户端,去拉取数据并且指定往kafka写数据的格式就能达到以proto ...
- 代码: 两列图片瀑布流(一次后台取数据,图片懒加载。下拉后分批显示图片。图片高度未知,当图片onload后才显示容器)
代码: 两列图片瀑布流(一次后台取数据,无ajax,图片懒加载.下拉后分批显示图片.图片高度未知,当图片onload后才显示容器) [思路]: 图片瀑布流,网上代码有多种实现方式,也有各类插件.没找到 ...
- git常用操作 配置用户信息、拉取项目、提交代码、分支操作、版本回退...
git常用操作 配置用户信息.拉取项目.提交代码.分支操作.版本回退... /********git 配置用户信息************/ git config --global user.name ...
- 定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表
最近项目中有一种需求: 大致需求是这样的 通过给定的 用户名和密码 要定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表 项目的结构式struts1 hibernat ...
- [sql server、oracle] 分组取最大值最小值常用sql
sqlserver2005前: --分组取最大最小常用sql--测试环境if OBJECT_ID('tb') is not null drop table tb;gocreate table tb( ...
- Mysql:常用代码
C/S: Client Server B/S: Brower Server Php主要实现B/S .net IIS Jave TomCat LAMP:L Mysql:常用代码 Create table ...
- php中封装的curl函数(抓取数据)
介绍一个封闭好的函数,封闭了curl函数的常用步骤,方便抓取数据. 代码如下: <?php /** * 封闭好的 curl函数 * 用途:抓取数据 * edit by www.jbxue.com ...
随机推荐
- nodejs命令行执行时带参数
nodejs命令行执行时带参数 转 https://www.jianshu.com/p/474e6d76f867 今天项目里突然想在初始化时跑一些数据,于是想起以前在python时可以在命令行里带 ...
- nginx 安装 ssl 证书
nginx 安装 ssl 证书 关键词: pem 转 crt , 证书续期, nginx 部署 ssl 证书, 解决 SSL23_GET_SERVER_HELLO 错误. 之前免费申请的 1年的证书过 ...
- api-doc-php
主要功能: 根据接口注释自动生成接口文档 演示地址 [Gitee Pages:]http://itxq.gitee.io/api-doc-php 开源地址: [GigHub:]https://gith ...
- 更换yum源为阿里云源
1.复制备份: cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载: wget -O ...
- nginx+tomcat报400的坑
nginx+tomcat的网页,在手机上通过浏览器可以正常访问,但是在自己的app的webview中访问就报400.查了访问日志,每次app中访问该页面,tomcat中就出现一个GET null的申请 ...
- java https post请求并忽略证书,参数放在body中
1 新建java类,作用是绕过证书用 package cn.smartercampus.core.util; import java.security.cert.CertificateExceptio ...
- spring中RequestBody注解接收参数时用JSONField转参数名无效问题
问题: 在springboot项目中使用@RequestBody注解接收post请求中body里的json参数的情况.即: @RequestMapping(value = "/get-use ...
- 查看表空间使用情况(SQL)
1: --查询表空间使用情况 2: SELECT Upper(F.TABLESPACE_NAME) "表空间名", 3: D.TOT_GROOTTE_ ...
- 基础自动化部署搭建过程【Jenkins】
测试环境搭建 为了快速搭建一套PHP测试环境我决定用laradock了,虽然文件很多,但是里面封装的东西也是比较全的,后期开发不知道会用到什么技术,就决定先用这个,随时可以启动用得到的服务.larad ...
- CSS选择符、伪类、层叠
主题,架子(时间架子,空间架子,三角架),素材. CSS 三种方式 行内样式 嵌入样式 链接样式 上下文选择符 祖父 孙 p em {color:red;} 父 子 p > em {color: ...