元数据库日期计算

时间:2019-04-05 09:28:58

标签: mongodb metabase

我希望Metabase使用“大于当前日期减去30天”,但是到目前为止,我还没有设法在mongo的自定义查询中实现这一点。

如何使它与Metabase一起使用?

{
    "$match": {
      "$or": [
        {
          "transactions.transactionTime": {
            "$gte": ISODate("Current Date - 30 days")
          }
        },
        {
          "transactions": null
        }
      ]
    }
  },

2 个答案:

答案 0 :(得分:0)

您可以使用subtract解决此问题:

{
  "$match": {
    "$expr": {
      "$gte": [
        "$yourDateField",
        { "$subtract": [ISODate(), { "$multiply": [3600000, 24, 30] }] }
      ]
    }
  }
}

我还使用了$multiply和3个参数来展示计算的工作原理:

1) 3600000 millis = 1 hour
2) 24 hours = 1 day
3) 30 days

但是您可以写一个简短的版本:

{
  "$match": {
    "$expr": {
      "$gte": [
        "$yourDateField",
        { "$subtract": [ISODate(), 2592000000] }
      ]
    }
  }
}

答案 1 :(得分:-1)

您可以将此传递给查询。

const d = new Date();
const howManyDaysBefore = 30;
const thirtyDaysAgo = new Date(d.setDate(d.getDate() - howManyDaysBefore)).toISOString();

console.log(thirtyDaysAgo)