为日期设置自动功能

时间:2019-08-09 11:41:11

标签: mongodb metabase

我的公司正在使用配置数据库进行查询 我为查询的自定义日期制作了数据 但是我们希望将此查询置于“脉冲”中,以便每天获取有关该查询的邮件。 该查询中的日期是否可以每天更改,以获取最近“ 30天”,“ 7天”和最后一天数据的结果。

简而言之,我正在寻找一个函数,以便它可以跟踪“我的当前日期”,以便我可以执行“我的当前日期” -30以获取过去30天的数据

[{"$lookup":{
    "from":"institutions",

    "localField":"institute_id",

    "foreignField":"_id",

    "as":"insti"
}},

{"$group":{
    "_id":"$institute_id",

    "name":{"$first":"$insti.name"},

    "applicants1":{"$addToSet":{"$cond":[{"$gte":["$created_at",ISODate("2019-06-30T00:00:00.000Z")]},"$candidate_id",null]}},

    "applicants2":{"$addToSet":{"$cond":[{"$gte":["$created_at",ISODate("2019-07-23T00:00:00.000Z")]},"$candidate_id",null]}},

    "applicants3":{"$addToSet":{"$cond":[{"$gte":["$created_at",ISODate("2019-07-29T00:00:00.000Z")]},"$candidate_id",null]}}
}},
{"$project":{
    "_id":0,

    "name":"$name",

    "last_30_days":{"$subtract":[{"$size":"$applicants1"},1]},

    "last_7_days":{"$subtract":[{"$size":"$applicants2"},1]},

    "last_1_day":{"$subtract":[{"$size":"$applicants3"},1]}

}},{"$sort":{"last_30_days":-1}}
]

在过去30天的查询中,我尝试使用"$currentDate()-30",但它不起作用

2 个答案:

答案 0 :(得分:0)

我当前在Mysql查询中使用它

最近30天

where date(created_at) >=  DATE_SUB(CURDATE(), INTERVAL 30 DAY)

过去7天

where date(created_at) >=  DATE_SUB(CURDATE(), INTERVAL 7 DAY)

当前日期

where date(created_at) >= CURDATE()

答案 1 :(得分:0)

可以使用{$ add:['$ applicants1','3000']}代替使用“ $ currentDate()-30” 这里3000是毫秒。您还可以使用乘法运算符,而不是以毫秒为单位传递值。如$ multiply:['desireddays','216000'] 整个查询将变为{$ add:['$ applicants1',{$ multiply:['-desireddays','216000']}]}

在过去的几天中,您输入的值为负负,例如:-30

参考https://www.hypertrends.com/2017/03/dateadd-functionality-mongodb/