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

[教程]MongoDB 从入门到进阶 (aggregation数据库状态)

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

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

下载地址: GitHub:https://github.com/magicdict/MagicMongoDBTool 在开始介绍这节之前,我来说说我开发这个工具的意义。 我不敢保证以后MongoDB可以大红大紫,也无法保证MongoDB以后会分享很多很多市场份额。 现在开发这个东西,一年后可能Mongo倒闭了,这

下载地址:

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

在开始介绍这节之前,我来说说我开发这个工具的意义。

我不敢保证以后MongoDB可以大红大紫,也无法保证MongoDB以后会分享很多很多市场份额。

现在开发这个东西,一年后可能Mongo倒闭了,这个工具就是一个垃圾。一年后,Mongo修成正果,香港服务器,这个工具就是香饽饽。

等所有人都觉得这个东西会火,你才去关注,开发工具,就晚了。花点业余时间,开发Mongo工具的同时,香港服务器租用,最主要去学习一下大数据的一些思想,例如副本,分片概念。

还有就是阶层数据库的一些实现的方法。当然,由于3年前才开始从VB.NET转C#的,也希望通过多些编码将C#用身体记住。

[aggregation Framework]

例子1

aggregation Framework 是MongoDB的一个功能强大的统计框架,这里就演示一下这个框架的使用方法。

首先,我们新建一个aggregation数据集。然后再按照官方文档的样子,使用MongoCola插入一个文档。(将下面这段JSON直接粘贴到新建文档的窗体里面就可以了)

{ title : "this is my title" , author : "bob" , posted : new Date() , pageViews : 5 , tags : [ "fun" , "good" , "fun" ] , comments : [ { author :"joe" , text : "this is cool" } , { author :"sam" , text : "this is bad" } ], other : { foo : 5 } }

1.$project

这个操作符号,可以用来做Select 的操作。用来指定显示的列。

{ $project : { title : 1 , author : 1 }}

这里表示我们只是需要title和author列的信息。

这里的参数1:表示 0:非表示。 _id是一个默认的表示项目,我们可以通过将_id设置为0,告诉系统不表示这个项目。

{ $project : { _id : 0 , title : 1 , author : 1 }}

当然,你也可以新建一个字段,例如一个doctoredPageViews字段,这个字段是在原有字段的基础上加工而成的值。

就如 SQL中的,Select (pageViews + 10 As doctoredPageViews) from table

{ $project : { title : 1, doctoredPageViews : { $add:["$pageViews", 10] } }}

当然你也可以重新命名列名

{ $project : { title : 1 , page_views : "$pageViews" , bar : "$other.foo" }}

最后你也可以通过Project操作符,来构建你想要的文档结果。下面这个例子里面的Status就是一个新建的子文档

{ $project : { title : 1 , stats : { pv : "$pageViews", foo : "$other.foo", dpv : { $add:["$pageViews", 10] } } }}

2$match这个操作符号,有点类似于Select文的Where条件。例如我们想寻找author是bob的记录:

{ $match : { author : "bob" } }

这个Aggregate框架里面的各种操作符号是可以任意组合的。我们可以既有match操作,又有project操作。

这里我们用工具将两种操作的条件分别加上。

注意:这里我们已经添加了2个条件了。第一个是match,第二个是project。

例子2

下面是例子的测试数据

{ "_id" : "1", "User" : "Tom", "Country" : "Finland", "Count" : 1 } { "_id" : "2", "User" : "Tom", "Country" : "Finland", "Count" : 3 } { "_id" : "3", "User" : "Tom", "Country" : "Finland", "Count" : 2 } { "_id" : "4", "User" : "Mary", "Country" : "Sweden", "Count" : 1 } { "_id" : "5", "User" : "Mary", "Country" : "Sweden", "Count" : 7 }

我们找一下是User是Tom,Count >= 2 的记录

{ $match : { User: "Tom", Count:{"$gte": 2} } }

4

关于操作符号:

3 $Group

我们对于User进行Group操作,并且对于Count进行合计

注意,这里必须要有一个_id字段来表示Group的条件

{ $group : { _id : { "MyUser": "$User" } TotalCount : { $sum : "$Count" } } }

结果就是Mary的合计值是8,Tom则是6.

MyUser SUM(Count) AS TotalCount

我们再次添加一条记录

分享到: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-05MySQL 重装MySQL后, mysql服务无法启动
  • 2018-12-05MySQL 不允许从远程访问的解决方法
  • 2018-12-05Mysql一次死锁排查过程的全纪录分享
  • 2017-05-11修改Innodb的数据页大小以优化MySQL的方法
  • 2018-12-05Access一个宏的实例检验口令
  • 2018-12-05监控MySQL的同时收集表信息代码详解(图文)
  • 2018-12-05数据库中超键、主键、外键等的定义用法详解
  • 2017-05-11在MySQLDump中使用-w语句进行备份的方法
  • 2018-12-05MySQL数据库优化(三)—MySQL悲观锁和乐观锁(并发控制)
  • 2018-12-05mysql中的用户id如何使用nginx访问日志来记录?

文章分类

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

最近更新的内容

    • mysql中判断记录是否存在方法比较
    • mysql 备份与迁移 数据同步方法
    • MySQL单表多关键字模糊查询的实现方法
    • ORACLE 10g 安装教程[图文]
    • 浅析MySQL之字符串函数
    • 关于封装类型的详细介绍
    • 数据转换冲突及转换过程中大对象的处理
    • MySQL优化之缓存优化详解(二)
    • 轻松掌握MySQL函数中的last_insert_id()
    • mysql如何让自增id归0解决方案

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

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