検索
ホームページデータベースmysql チュートリアル[Mongo]分组统计时间aggregate,group,distinct

开发中有些按日期记录的记录需要各种维度的统计,按天,按月,按年,按小时,。。分组统计,还有些需要对字段去重统计,在之前的 [Mongo] 按时间分组统计(group时间格式化) 中用group实现了按天的统计,不过使用new Date()方法会有些坑,今天看了下aggreg

开发中有些按日期记录的记录需要各种维度的统计,按天,按月,按年,按小时,。。分组统计,还有些需要对字段去重统计,在之前的 [Mongo] 按时间分组统计(group时间格式化) 中用group实现了按天的统计,不过使用new Date()方法会有些坑,今天看了下aggregate中,使用聚合来写个时间统计。

tips: aggregate 挺复杂,弄明白了再做笔记,现在只是根据需求来查询。

数据结构还是:
/* 0 */
{
  "_id" : ObjectId("541fcc51c6c36038bc6b81cd"),
  "url" : "http://wifi21.com/",
  "addtime" : ISODate("2014-08-19T00:15:02Z")
}

/* 1 */
{
  "_id" : ObjectId("541fcc51c6c36038bc6b81ce"),
  "url" : "http://meiwen.me/src/index.html",
  "addtime" : ISODate("2014-08-19T00:15:07Z")
}
...
按月统计pv值(相当于group)
db.msds_accessrecord.aggregate([
    {$group: {
        _id: {
            "$month": "$addtime"
        }, 
     pv: {$sum: 1}}
    },
    {$sort: {"_id": 1}}
]);

统计结果

/* 0 */
{
    "result" : [ 
        {
            "_id" : 8,
            "pv" : 583
        }, 
        {
            "_id" : 9,
            "pv" : 1399
        }
    ],
    "ok" : 1
} 

按月统计url值,重复url去掉,这里只是做个演示,可能统计没什么意义 (相当于group+distinct)

db.msds_accessrecord.aggregate([
    {$group: {
        _id: {
            "month": {"$month": "$addtime"},
            "url": "$url"
        }
    }},
    {$group: {_id:"$_id.month", uv: {$sum: 1}}},
    {$sort: {"_id":1}}
]);
这里用到了管道,排序,聚合

统计结果

/* 0 */
{
    "result" : [ 
        {
            "_id" : 8,
            "uv" : 41
        }, 
        {
            "_id" : 9,
            "uv" : 134
        }
    ],
    "ok" : 1
}

引用:

聚合使用方法: http://docs.mongodb.org/manual/reference/method/db.collection.aggregate/#db.collection.aggregate

日期聚合函数: http://docs.mongodb.org/manual/reference/operator/aggregation-date/

本文出自 “orangleliu笔记本” 博客,请务必保留此出处http://blog.csdn.net/orangleliu/article/details/39932081

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
如何在uniapp中实现数据统计和分析如何在uniapp中实现数据统计和分析Oct 24, 2023 pm 12:37 PM

如何在uniapp中实现数据统计和分析一、背景介绍数据统计和分析是移动应用开发过程中非常重要的一环,通过对用户行为的统计和分析,开发者可以深入了解用户的喜好和使用习惯,从而优化产品设计和用户体验。本文将介绍如何在uniapp中实现数据统计和分析的功能,并提供一些具体的代码示例。二、选择合适的数据统计和分析工具在uniapp中实现数据统计和分析的第一步是选择合

如何使用SQL语句在MySQL中进行数据聚合和统计?如何使用SQL语句在MySQL中进行数据聚合和统计?Dec 17, 2023 am 08:41 AM

如何使用SQL语句在MySQL中进行数据聚合和统计?在进行数据分析和统计时,数据聚合和统计是非常重要的步骤。MySQL作为一个功能强大的关系型数据库管理系统,提供了丰富的聚合和统计函数,可以很方便地进行数据聚合和统计操作。本文将介绍使用SQL语句在MySQL中进行数据聚合和统计的方法,并提供具体的代码示例。一、使用COUNT函数进行计数COUNT函数是最常用

Vue框架下,如何快速搭建统计图表系统Vue框架下,如何快速搭建统计图表系统Aug 21, 2023 pm 05:48 PM

Vue框架下,如何快速搭建统计图表系统在现代网页应用中,统计图表是必不可少的组成部分。Vue.js作为一款流行的前端框架,提供了很多便捷的工具和组件,能够帮助我们快速搭建统计图表系统。本文将介绍如何利用Vue框架以及一些插件来搭建一个简单的统计图表系统。首先,我们需要准备一个Vue.js的开发环境,包括安装Vue脚手架以及一些相关的插件。在命令行中执行以下命

Vue统计图表的线性、饼状图功能实现Vue统计图表的线性、饼状图功能实现Aug 19, 2023 pm 06:13 PM

Vue统计图表的线性、饼状图功能实现在数据分析和可视化领域,统计图表是一种非常常用的工具。Vue作为一种流行的JavaScript框架,提供了便捷的方法来实现各种功能,包括统计图表的展示和交互。本文将介绍如何使用Vue来实现线性和饼状图功能,并提供相应的代码示例。线性图功能实现线性图是一种用于展示数据趋势和变化的图表类型。在Vue中,我们可以使用一些优秀的第

在Beego中使用Google Analytics统计网站数据在Beego中使用Google Analytics统计网站数据Jun 22, 2023 am 09:19 AM

随着互联网的快速发展,Web应用程序的使用越来越普遍,如何对Web应用程序的使用情况进行监控和分析成为了开发者和网站经营者的关注点。GoogleAnalytics是一种强大的网站分析工具,可以对网站访问者的行为进行跟踪和分析。本文将介绍如何在Beego中使用GoogleAnalytics来统计网站数据。一、注册GoogleAnalytics账号首先需要

如何使用MySQL的COUNT函数统计数据表的行数如何使用MySQL的COUNT函数统计数据表的行数Jul 25, 2023 pm 02:09 PM

如何使用MySQL的COUNT函数统计数据表的行数在MySQL中,COUNT函数是一个非常强大的函数,用于统计数据表中满足特定条件的行数。本文将介绍如何使用MySQL的COUNT函数来统计数据表的行数,并提供相关的代码示例。COUNT函数的语法如下:SELECTCOUNT(column_name)FROMtable_nameWHEREconditi

统计分析法的步骤统计分析法的步骤Jun 28, 2023 pm 03:27 PM

统计分析,常指对收集到的有关数据资料进行整理归类并进行解释的过程。统计分析的基本步骤包括:1、收集数据;2、整理数据;3、分析数据。

如何在PHP中实现数据的分组和统计功能如何在PHP中实现数据的分组和统计功能Sep 24, 2023 pm 01:39 PM

如何在PHP中实现数据的分组和统计功能在实际的开发过程中,经常会遇到对数据进行分组和统计的需求。无论是对数据库中的数据进行分组统计,还是对数组中的数据进行操作,PHP提供了丰富的函数和方法来满足我们的需求。下面将分别演示如何在PHP中对数据库和数组数据进行分组和统计。数据库中的数据分组和统计假设我们有一个学生成绩表,表结构如下:CREATETABLE`s

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール