php,mysql 统计每一天近30天内每天的消费总量?目前问题出在根据每一天分组mysql 统计每一天的时候出错了。

MongoDB分组统计的一个例子
MongoDB分组统计的一个例子
这几天被MongoDB整疯了。
算是对MongoDB有了进一步的了解,还是有很多坑等着去探索。
一个是关于MongoDB中Int64 Int32 Double三个数据类型,PHP中只有int型,那么32位系统中怎么处理的呢。
被坑之后发现:使用MongoDB PHP Driver时,如果向mongodb中insert一个数值,默认是如果这个数值一个小于等于(2^31 - 1) 那么在mongodb中存储的时候是int32存储 。但是如果这个数值大于了(2^31 -1)但是没有进行任何处理,直接使用了insert,那么在mongodb中是存储成了Double,如果想要让存储称int64 ,那么php中需要使用 new MongoInt64这个类。
那么反过来,如果mongodb中存储了一个int64的数值,使用find操作,在php中对应什么类型呢?在32位系统中,如果这个数值没有超过2^31那么正常就是一个int,如果超了,额……报出一个异常…!!叫什么MongoCursorException。很无奈吧。。
然后说说关于mongo中分组统计这个问题。
一般来说mongo中如果做分组统计,我有三个方法,一个aggregate &一个 group &然后就是直接上mapreduce
aggregate和group返回分组的结果,mapreduce的话,会将结果输出到一个临时集合里,需要再去查这个集合
前面两个用过,mapreduce目前还没试过。看资料和group的用法差不多。
先说aggregate,需要提到管道的概念,就是一节一节的管道,文档从这一节一节管道中过滤,最终得到想要的结果
一般是先用{&$match&:{}} 过滤一下,相当于sql中的where条件,然后可能需要{&$project&:{}} 需要对文档进行一个初步的整理,删除,添加,修改一些字段(属性) 然后就是最终要的{&$group&:{}} $group中一般是
&{ &$group& : { &_id& : { &citycode&:&$citycode& , &uid& : &$uid& &} , &count&:{ &$sum& : 1 } } }&
以citycode和uid分组,相当于sql中group by citycode , uid 经过这个之后,文档就只剩下了 citycode &uid &count 这三个字段了
可以使用多个$goup。
group这个命令,db.collection_name.group() &首先是 key 或者是keyf &就是相当于分组 &key比较简单
key : &citycode& 就是以citycode进行分组 &&
keyf可以复杂一点 & keyf : function(doc){ return { &citycode&:doc.citycode , &uid&: doc.uid} ;}
这里的doc是所有的文档,使用citycode和uid进行分组,结果就是分好组的文档,所有文档还是存在的
在 reduce:function Rdeuce(doc , out){ } 可以理解就是将一组的文档传进来进行循环,输出一个out文档。out文档是一个{ } 哦 。
今天先到这吧,思绪有点乱了。改天整理。。。
我的热门文章
即使是一小步也想与你分享您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
高负载网站架构.doc43页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:100 &&
你可能关注的文档:
··········
··········
大型网站的架构设计问题
在CSDN上看到一篇文章(http://blog.csdn.net/fww80/archive//695293.aspx)讨论大型高并发负载网站的系统架构问题,作者提出了几点建议: 1. HTML静态化,这可以通过CMS自动实现; 2. 图片服务器分离(类似的,在视频网站中,视频文件也应独立出来); 3. 数据库集群和库表散列,Oracle、MySQL等DBMS都有完美的支持; 4. 缓存,比如使用Apache的Squid模块,或者是开发语言的缓存模块,; 5. 网站镜像; 6. 负载均衡。 作者将负载均衡称为“是大型网站解决高负荷访问和大量并发请求采用的终极解决办法”,并提出“一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群”。在实践时可以考虑建立应用服务器集群和Web服务器集群,应用服务器集群可以采用Apache+Tomcat集群和WebLogic集群等,Web服务器集群可以用反向代理,也可以用NAT的方式,或者多域名解析均可。 从提升网站性能的角度出发,静态资源不应和应用服务器放在一起,数据库服务器也应尽量独立开来。在典型的MVC模式中,由谁来完成数据逻辑处理的,对系统性能有着至关重要的影响。以Java EE为例,在OO的设计思想中,我们强调系统的抽象、重用、可维护性,强调下层的更改不会扩散到上层逻辑,强调系统移植的便捷性,因而往往存在一种过分抽象的问题,比如在Hibernate的基础上再加入一层DAO的设计。另外一方面,却会忽视利用DBMS本身的优秀特性(存储过程、触发器)来完成高效的数据处理。诚然,如果客户要求将数据从Oracle移植到MySQL,那么DBMS特性的东西越少,移植便越容易。但事实上,在实践中,提出类似移植要求的情况非常少见,因此在做架构设计时,不一定为了这种潜在的需求而
正在加载中,请稍后...

我要回帖

更多关于 2016年gdp总量统计图 的文章

 

随机推荐