- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 mongoDB 数据库,其中包含由不同用户创建的对象。现在为了跟踪用户保留率和活跃用户,我想每周一次了解有多少不同的用户创建了新对象。
例如,假设对象是“注释”。如何有效地统计上周有多少不同的用户创建了注释?
注意:
{
"user_id" : "..."
"note" : "..."
"date" : "..."
}
我使用 Mongoose 和 NodeJS。
最佳答案
假设集合附加到名为 Note
的模型,并且 "date"
中的数据实际上是有效的 Date
对象,则您本质上是查询给定日期和聚合之间的数据:
// Work out days for start of tomorrow and one week before
const oneDay = 1000 * 60 * 60 * 24,
oneWeek = oneDay * 7;
const d = Date.now();
const lastDay = d - ( d % oneDay ) + oneDay;
const firstDay = lastDay - oneWeek;
// Run the aggregation
Note.aggregate([
// $match is a query to select the week
{ "$match": { "date": { "$gte": new Date(firstday), "$lt": new Date(lastDay) } },
// $group on the distinct users
{ "$group": { "_id": "$user_id" } },
// $group to count the total
{ "$group": { "_id": null, "count": { "$sum": 1 } } }
],function(err, results) {
// results in here
})
$match
是一个“查询”,就像任何其他 MongoDB 查询语句一样。您使用$gte
和 $lt
运算符来表示可以落在其间的值的“范围”。这实际上是一种编写 AND 条件的简写方式,无需明确说明该术语。
下一阶段是$group
我们通过应用分组键(_id
)来将“user_id
”字段数据“聚合”为“不同”值。分组键的输出始终是唯一的。
最后一个阶段是另一个$group
,这次分组键为 null
而不是使用当前字段值。这意味着“将所有内容分组”,因此我们最终得到应用 $sum
的单行。对 1
的值进行运算以实现“计数”。
这就是聚合“管道”的工作方式,每个“阶段”都会流入下一个“阶段”。所以“Query”->“Aggregate Distinct”->“Aggregate Total”就是这种模式,其中最重要的是要记住,每个阶段只能看到上一个阶段输出的数据的 View 。
一旦掌握了这些概念,这就很容易了。
关于javascript - 计算上周的活跃用户数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44735667/
我想检索上周和 15 周前的数据。 注意: 仅 15 周前的同一工作日,而不是其间的所有数据。例如,我想要 15 周前的每个星期四的数据。 这是我的 MySQL 表的简化,具有所需的结果。 Stati
我正在寻找一种基于以下条件选择行的方法: 本周 (S-S) 上周 (SS) 我遇到的问题是专门从Sunday-Sunday中选择。 目前我正在使用: SELECT SUM(time) FROM `ti
我有一个包含以下数据的 SQL 表: select day, counter from table1 where day LIKE '%201601%'; +----------+---------+
我有一个包含 3 列的表格:id、updated_at、click_sum。 许多行具有完全相同的 updated_at 值,这使得很难简单地检索数据、按 update_at 排序并在图表中显示总和。
我有一个 orders 表,其中包含 orderID 和 order_date。 我想查询上周、上个月甚至昨天的数据,但是我不知道如何从当前时间中减去时间 我的 order_date 字段是 TIME
在我的 iTunes connect 开发者资料中,我看到了与上周相比的变化,就在它的下方,售出单位数量旁边显示有变化。这个“变化”是什么?这是有多少人卸载了该应用程序? 最佳答案 不是,是上周下载量
我正在做一些统计,我想选择(仅上周)和本周的时间。 本周很简单: $start = strtotime('this week'); $finish = time(); 上周 $start = strt
前言 本文主要介绍的是关于利用python 获取本周,上周,本月,上月,本季的时间,话不多说了,来一起看看实现的方法吧 示例代码: ?
查询当前这周的数据 SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m
我需要设置上周、上个月更改下拉列表的时间段 我正在做 switch (DDL.SelectedIndex) { case 0:
使用此查询: date(timestamp_column) >= SUBDATE(curdate(), WEEKDAY(curdate())) - interval 1 week AND date(t
我的 Android SQLite 数据库中有这个表: CREATE TABLE statistics (subject TEXT, hits INTEGER, fails INTEGER, date
目录 1、总结 一句话总结:使用mktime()函数即可:PHP mktime() 函数用于返回一个日期的 Unix 时间戳。 1、mktime()如何获取昨天的开始时间和结束时间? 2、
我需要显示有关Kibana的报告,该报告将基于多个日期间隔汇总结果。时间与时间戳一起映射为浮点数据类型。 例: Jobs, Yesterday, Last Week, Last Quarters Jo
我有一个名为 sales 的表,如下所示: s.no item_sold date 1 soap 25.07.2017 2
我想做的是让 NSDate 今天、昨天、本周、上周、本月、上个月变量准备好进行比较,以便在 UITableView 的 titleForHeaderInSection 上添加标题 我想要的是在下面的代
所以,我想做的是实现一个数据范围选择,它不显示两个日期选择器“从”和“到”。我想让用户在今天、昨天、上周、上个月等之间进行选择。 我在服务器端的应用程序中有类似的东西,但是: 1- 代码看起来很糟糕;
我是一名优秀的程序员,十分优秀!