【问题标题】:Make an automated function for the date为日期创建一个自动化函数
【发布时间】:2019-08-09 11:41:11
【问题描述】:

我的公司正在使用元数据库进行查询 我有为查询的自定义日期制作的数据 但是我们想把这个查询放在“脉冲”中,以便每天收到关于这个查询的邮件。 这个查询中的日期是否可以每天更改。获取最后“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",但它不起作用

【问题讨论】:

  • 您是否可以尝试一个更简单的查询,使用查询生成器过滤过去 30 天的数据,然后显示生成的 SQL?这样,您就可以弄清楚如何执行这种过滤器。我不了解 MongoDB,但如果我觉得这与它有关,而不是与元数据库本身有关。

标签: mongodb metabase


【解决方案1】:

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

过去几天以负值传递值:在您的情况下为 -30

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

【讨论】:

    【解决方案2】:

    我目前在 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()
    

    【讨论】:

    • 过去 7 天的 INTERVAL 必须为 7
    • 经典的懒惰错误:)
    猜你喜欢
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2020-11-03
    相关资源
    最近更新 更多