• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > [教程]MongoDB 从入门到进阶 (数据检索及统计

[教程]MongoDB 从入门到进阶 (数据检索及统计

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了教程,MongoDB,入门,进阶,数据,检索,统计等相关知识,希望本文的分享对您有所帮助

[教程]MongoDB 从入门到进阶 (数据检索及统计 - 微博数据的整理) 下载地址: GitHub: https://github.com/magicdict/MagicMongoDBTool 这次讲解一下MongoDB的数据统计能力。 作为统计数据,这里我采集了杨幂的微博上的粉丝作为实验数据。由于最多只能一天

[教程]MongoDB 从入门到进阶 (数据检索及统计 - 微博数据的整理)

下载地址:

GitHub: https://github.com/magicdict/MagicMongoDBTool

这次讲解一下MongoDB的数据统计能力。

作为统计数据,这里我采集了杨幂的微博上的粉丝作为实验数据。由于最多只能一天采集5000个粉丝的资料,所以,数据也只有5000条。

同时,这些资料虽然来自于User这个类,但是没有牵涉到层次结构,无法体会阶层型数据库的威力,服务器空间,也是蛮遗憾的。

下面的代码是用来采集数据的。展示这段代码,一来说明一下如何正确的使用新浪微博的API,二来说明一下,MongoDB就像一个ORM一样,直接将对象保存到数据库中了。

当然新浪微博的API你可以去这里下载,

API函数有些蛮坑人的地方,虽然方法参数中,获取粉丝资料数量可以是Int32,不过,你真的设置一个大于200的数字,程序会报错,参数类型不匹配。

我原来以为真的是参数类型的问题,但是编译没有报错。。。。最后发现,还有200的限制。。。。。既然你限制了,你就写成Byte啊。。。坑爹。。。。

btnGetFollowers_Click(object sender, EventArgs e) 2 { 3 var Srv = SystemManager.GetCurrentServer(); 4 if (Srv != null) 5 { ); 7 var oauth = new NetDimension.Weibo.OAuth(txtAppKey.Text, txtAppSrect.Text); 8 bool result = oauth.ClientLogin(txtWeiBoUsr.Text, txtWeiBoPsw.Text); { 11 var Sina = new NetDimension.Weibo.Client(oauth); 12 var uid = Sina.API.Account.GetUID(); ); 14 int UserCount; 15 int TotalCount; 16 UserCount = 0; 17 TotalCount = 0; 18 19 NetDimension.Weibo.Entities.user.Collection followers; { 22 followers = Sina.API.Friendships.Followers(txtSupperStarID.Text, "", 150, UserCount, true); 23 if (TotalCount == 0) 24 { 25 TotalCount = followers.TotalNumber; 26 } 27 foreach (var follow in followers.Users) 28 { 29 col.Insert(follow); 30 UserCount++; 31 } 32 } while (UserCount < TotalCount); ); 34 } 35 } 36 else { ); 38 } 39 }

采集好的数据如图所示:(虽然不是个人信息,还是打马赛克吧)

[看看条数:聚合 Count]

5000条记录。。。这个就不用解释了吧。聚合的Count,就是条数统计

Collection对象有Count方法,直接调用就可以了。当然,Count支持条件过滤。

if (Query.QueryConditionList.Count == 0 || !IsUseFilter) { MyMessageBox.ShowEasyMessage(, + SystemManager.GetCurrentCollection().Count().ToString()); } else { MongoDB.Driver.IMongoQuery mQuery = MongoDBHelper.GetQuery(Query.QueryConditionList); MyMessageBox.ShowMessage(, + SystemManager.GetCurrentCollection().Count(mQuery).ToString(), mQuery.ToString(), true); }

[看看有多少地区的人玩微博:聚合 Distinct]

Distinct也是比较常用的功能,同样字段的记录,只算一条。例如,我们想看看,到底多少地方的人玩微博,我们可以对用户的所在省份进行Distinct操作。

一共出现36个省份的编号。100代表的是未知。31代表上海,香港服务器,11代表北京

BsonArray ResultArray = (BsonArray)SystemManager.GetCurrentCollection().Distinct(strKey, MongoDBHelper.GetQuery(DistinctConditionList));

[看看每个省份玩微博的人数:聚合 Group]

有兴趣玩NoSQL的人,数据库都不会差,Group是干什么的,大家都知道。OK,

对于省份Group一下,然后看看Count数字吧。

由于工具还没有完成,现在暂时只提供(内置了)Count的Group功能,当然你也可以自己修改Reduce和InitFields来获得其他结果。

【高级功能MapReduce】

数据太少,用MapReduce。Map函数是分散给各个不同的数据实例并行做的。Reduce函数则是将各个Map函数的结果进行最后的合并统计。

官方的资料:

MapReduce的东西,以后会拿出来作为单独的一个主题,这里就展示一下。。。

【Query:我只想看姓名和城市和性别】

这么多数据字段,眼睛看花了,我只想看名字和城市,还有性别(找妹纸啊)。。。。。。

呵呵,上海的妹子。。。。。

继续打马赛克:500人里面,女性,省份是31的,一共137人。。。。。

灵活运用查询,香港虚拟主机,一切尽在掌握。

核心代码:

FindAs方法,支持查询条件,显示字段,排序,Skip指定记录数,抽出记录数。

官方资料:

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mysql 精简过程(删除一些文件)
  • 基于mysq字段选择的详解
  • mysql存储过程 在动态SQL内获取返回值的方法详解
  • 基于mysql多实例安装的深入解析
  • 基于Php mysql存储过程的详解
  • 关于mysql基础知识的介绍
  • 深入Mysql,SqlServer,Oracle主键自动增长的设置详解
  • Windows XP系统安装MySQL5.5.28图解教程
  • 解析SQLite中的常见问题与总结详解
  • linux下mysql提示"mysql deamon failed to start"错误的解决方法

相关文章

  • 2018-12-05设计数据库的一般步骤及例子
  • 2017-05-11具有负载均衡功能的MySQL服务器集群部署及实现
  • 2018-12-05mysql进阶(二十五)解决数据库NO CONNECTION问题
  • 2018-12-05SQL Server 2000 清理日志精品图文教程
  • 2018-12-05sqlserver数据库危险扩展删除和恢复代码
  • 2018-12-05mysql提示[Warning] Invalid (old?) table or database name问题
  • 2018-12-05Oracle Max函数使用中出现的问题
  • 2018-12-05mysq学习:通过命令将sql查询的结果导出到具体文件
  • 2018-12-05sql 创建表、修改表结构、删除表
  • 2017-05-11mysql Out of memory (Needed 16777224 bytes)的错误解决

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 详细解读MySQL中的权限
    • MySQL 备份还原数据库批处理
    • oracle 使用递归的性能提示测试对比
    • 三种SQL分页查询的存储过程代码
    • mysql把主键定义为自动增长标识符类型
    • sqlserver 复制表 复制数据库存储过程的方法
    • SQLSERVER查询所有数据库名,表名,和字段名的语句
    • 分页查询 效率最高
    • 分享MySQL缓存的查询和清除命令实例代码
    • SQL2005日志收缩方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有