- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要统计所有用户,上周和上个月的用户,按日期分组。
我已经尝试过
var project = {
$project:{
day: { $dayOfMonth: "$updatedAt" },
month: { $month: "$updatedAt" },
year: { $year: "$updatedAt" }
}
},
group = {
"$group": {
"_id": {
"date": "$updatedAt",
},
"count" : { "$sum" : "$1" }
}
};
db.collection.aggregate([project, group])...
我需要结果看起来像
{lastWeek: 12, lastMonth: 20, all: 102}
编辑 添加了示例 json 数据。仅包含用于测试的对象的必要属性
[{
"_id" : ObjectId("someId"),
"createdAt" : ISODate("2017-04-08T09:51:44.897Z"),
"updatedAt" : ISODate("2018-01-08T09:51:55.460Z"),
"foo1" : null
},{
"_id" : ObjectId("someId"),
"createdAt" : ISODate("2017-04-08T09:51:44.897Z"),
"updatedAt" : ISODate("2017-12-30T09:51:55.460Z"),
"foo1" : null
},{
"_id" : ObjectId("someId"),
"createdAt" : ISODate("2017-04-08T09:51:44.897Z"),
"updatedAt" : ISODate("2018-01-17T09:51:55.460Z"),
"foo1" : null
},{
"_id" : ObjectId("someId"),
"createdAt" : ISODate("2017-04-08T09:51:44.897Z"),
"updatedAt" : ISODate("2018-01-01T09:51:55.460Z"),
"foo1" : null
},{
"_id" : ObjectId("someId"),
"createdAt" : ISODate("2017-04-08T09:51:44.897Z"),
"updatedAt" : ISODate("2017-04-08T09:51:55.460Z"),
"foo1" : null
}]
最佳答案
您可以尝试以下聚合
var today = new Date();
var lastWeek = new Date();
today.setDate(today.getDate() - 7);
var lastMonthFromToday = new Date();
lastMonthFromToday.setMonth(today.getMonth() - 1);
db.col.aggregate(
{"$group":{
"_id":null,
"lastWeek":{"$sum":{"$cond":[{$and:[{"$gte":["$updatedAt",lastWeek]}, {"$lte":["$updatedAt",today]}]}, 1, 0]}},
"lastMonth":{"$sum":{"$cond":[{$and:[{"$gte":["$updatedAt",lastMonthFromToday]}, {"$lte":["$updatedAt",today]}]}, 1, 0]}},
"all":{"$sum":1}
}})
Mongo 3.4版本:
db.col.aggregate(
{"$facet":{
"lastWeek":[{"$match":{"updatedAt":{"$gte":lastWeek, "$lte":today}}},{"$count":"count"}],
"lastMonth":[{"$match":{"updatedAt":{"$gte":lastMonthFromToday, "$lte":today}}},{"$count":"count"}],
"all":[{"$count":"count"}]
}})
关于javascript - MongoDB按日期查询组集合上周/上个月/所有NodeJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48307611/
根据 @gordon 的评论进行编辑 --- 假设以下场景 CREATE TABLE card (date_field, numcard, month); INSERT INTO card (date
以下返回我们月份集合中的最后一个成员: TAIL([Date].[Date - Calendar Month].[Calendar Month],1) 我们的多维数据集包含截至昨天(包括昨天)的数据
我需要统计所有用户,上周和上个月的用户,按日期分组。 我已经尝试过 var project = { $project:{ day: { $dayOfMonth: "$updat
我正在使用 Trent Richardson 的优秀 Datetimepicker .但是,我遇到了一个特定问题,该插件的行为不像传统的 jQuery UI Datepicker。 . 当您从一个空白
您好,我需要显示 3 个月(单独)借记的总金额,并将其显示在柱形图上。 (我已包含 session_start 和 $user_id = $_SESSION['user_id']) 而且我认为我的 $
我正在尝试获取上个月(或一周)或给定时间段内所有应用程序使用的移动数据。我想获取移动数据使用历史记录。我看到 android 现在默认情况下这样做。是否可以通过代码获取这些信息? 最佳答案 Is it
我正在尝试从我的数据中获取第一个结果,其中日期等于上个月的日期范围。 这是我的数据库内容的示例 - id date_recorded 1 2016-07-22 15:21:33 2 2016
我有一个时间对象,想找到下一个月/上一个月。加减天数不起作用,因为每个月的天数不同。 time = Time.parse('21-12-2008 10:51 UTC') next_month = ti
我的 Android SQLite 数据库中有这个表: CREATE TABLE statistics (subject TEXT, hits INTEGER, fails INTEGER, date
我正在使用 AWS Cloudfront Java SDK 来自动执行一些任务,其中之一就是使分发无效。我读到前 1000 个失效请求(实际上是路径)是免费的,之后它们 are billed . 我在
我正在构建一个函数,我将根据用户作为参数发送给它的内容动态生成日期。我需要为上周、本周、上个月、本月、过去 7 天、过去 30 天等案例创建日期。由于我要将日期从日期发送到数据库,因此我需要将它们格式
我将 FScalendar 用于上个月和下个月的日历。如何从当前日历中删除上个月/下个月的日期? 最佳答案 您只能隐藏下个月和上个月的日期。 override func viewDidLoad() {
我有一个名为 sales 的表,如下所示: s.no item_sold date 1 soap 25.07.2017 2
我已经通过if else 构建了长距离或传统方式的过滤代码,我需要使用高级 JavaScript 方法(如 filter、map、reduce)来完成 home.html
我想做的是让 NSDate 今天、昨天、本周、上周、本月、上个月变量准备好进行比较,以便在 UITableView 的 titleForHeaderInSection 上添加标题 我想要的是在下面的代
我是一名优秀的程序员,十分优秀!