如何基于多维数据集js中的用户名获取数据

问题描述

定义

我已将我的多维数据集js后端连接到mongodb。我通过以下方式将文档存储在mongo db数据库中。

这是我的文档在MONGO DB中的样子

{
  anonymousId: "bdee014b-09e1-4d79-bcf1-c3cc91cd4101"
  user: "abc"
  url: "/index"
  eventType: "pageView"
  date: "22-08-2020"
  time: "20:33:9"
  data: "some data"
}

现在让我们假设我的mongodb集合中有 10个文档,其中5个文档属于用户:“ abc” ,而5个文档属于用户:“ xyz”

下面如何在浏览器控制台中立即显示数据

{
 annotation: {measures: {,…},…}
 data: [{Events.user: "xyz",{Events.user: "xyz",…]
 0: {Events.user: "xyz",…}
 1: {Events.user: "xyz",…}
 2: {Events.user: "xyz",…}
 3: {Events.user: "abc",…}
 4: {Events.user: "abc",…}
 5: {Events.user: "xyz",…}
 lastRefreshTime: "2020-08-22T15:23:53.547Z"
 query: {measures: ["Events.pageView","Events.buttonClick"],dimensions: ["Events.user","Events.allData"],…}
 refreshKeyValues: [[{unix_timestamp(): 1598109833}]]
 usedPreAggregations: {}
}

在这里您可以看到数据数组,我从多维数据集js后端得到的响应中得到了回复,其中 4 中有6个对象属于用户 XYZ 和 2 属于 ABC

我的CUBE.JS SCHEMA

cube(`Events`,{

sql: `SELECT * FROM test.events`,refreshKey: {
    sql: `SELECT UNIX_TIMESTAMP()`
},measures: {
    count: {
        type: `count`
    },pageView: {
        type: `count`,filters: [
            { sql: `${eventType} = 'pageView'` }
        ]
    },buttonClick: {
        type: `count`,filters: [
            { sql: `${eventType} = 'buttonClicked'` }
        ]
    }
},dimensions: {

    anonymousId: {
        sql: `anonymousId`,type: `string`
    },url: {
        sql: `url`,user: {
        sql: `user`,allData: {
        sql: `data`,eventType: {
        sql: `eventType`,referrer: {
        sql: `referrer`,}

});

问题

我如何隔离,或者我们可以说组数据,具体取决于用户。我的意思是我希望数据为两个不同的用户返回两个数组。假设 xyz 有2个文档,则应返回该用户的2个文档的数组,而 abc 有4个文档,则应返回4个文档的数组。

不应将它们一起返回。 abc的数据应单独返回 xyz的数据应单独返回。

2个用户应保留2个不同的数组

期望

为实现此行为而编写模式的技巧或方式

解决方法

您可以使用User Context或queryTransformer或Multitenant Compile Context,这三个功能使您可以基于授权数据实现数据访问。

queryTransformer稍微复杂一点,但是它使您可以更灵活地自定义访问控制。更适合复杂情况。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...