如何将限制过滤器应用于 cubeJs 的 timeDimension 属性?

How can I apply limit filter to the timeDimension property of cubeJs?

下面是我尝试使用 cubejs 应用 2 的限制的场景。 这是 json 的查询:

{
    "measures": [
        "actors.actorscount"
    ],
    "timeDimensions": [
        {
            "dimension": "actors.createdAt",
            "granularity": "month",
            "dateRange": "Last quarter"
        }
    ],
    "dimensions": [
        "actors.genre"
    ],
    "filters": []
}

在对以下查询应用 limit=2 后,我得到以下条形图响应:

{
        "measures": [
            "actors.actorscount"
        ],
            "timeDimensions": [
                {
                    "dimension": "actors.createdAt",
                    "granularity": "month",
                    "dateRange": "Last quarter"
                }
            ],
                "dimensions": [
                    "actors.genre"
                ],
                    "filters": [],
                    "limit":2
    }

我得到的当前条形图为:

应用限制后期待条形图响应:

那么,应该怎么做才能获得正确的条形图响应?

维度数组内部只包含一个值,但它在该值之后有一个逗号,这是错误的语法。你必须解决这个问题。 (删除逗号,您的代码将起作用)。

请从 "timeDimensions" 数组中删除 "limit" 键值对,并将其添加为不在某些 属性 下的独立键值对。

这样的结果可以分两步实现:

第一个获得没有时间粒度的前 2 个维度:

{
    "measures": [
        "actors.actorscount"
    ],
    "timeDimensions": [
        {
            "dimension": "actors.createdAt",
            "dateRange": "Last quarter"
        }
    ],
    "dimensions": [
        "actors.genre"
    ],
    "order": { "actors.actorscount": "desc" },
    "limit": 2
}

然后使用第一个查询结果中的两个顶级维度来获得所需的图表:

{
    "measures": [
        "actors.actorscount"
    ],
    "timeDimensions": [
        {
            "dimension": "actors.createdAt",
            "granularity": "month"
            "dateRange": "Last quarter"
        }
    ],
    "dimensions": [
        "actors.genre"
    ],
    "filters": [{
      "dimension": "actors.genre",
      "operator": "equals",
      "values": ["action", "comedy"]
    }]
}