Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在cube js中基于用户名获取数据_Javascript_Sql_Mongodb_Cube.js - Fatal编程技术网

Javascript 如何在cube js中基于用户名获取数据

Javascript 如何在cube js中基于用户名获取数据,javascript,sql,mongodb,cube.js,Javascript,Sql,Mongodb,Cube.js,定义 我已经将我的cube js后端连接到mongodb。我以以下方式将文档存储在mongo db数据库中 这就是我的文档在MONGO DB中的外观 { anonymousId: "bdee014b-09e1-4d79-bcf1-c3cc91cd4101" user: "abc" url: "/index" eventType: "pageView" date: "22-08-2020&

定义

我已经将我的cube 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",…}, {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后端返回的数据数组中有6个对象4属于用户XYZ,其中2属于ABC

MY CUBE.JS模式

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`,
        type: `string`
    },

    user: {
        sql: `user`,
        type: `string`
    },

    allData: {
        sql: `data`,
        type: `string`
    },

    eventType: {
        sql: `eventType`,
        type: `string`
    },

    referrer: {
        sql: `referrer`,
        type: `string`
    },

 }

});
问题

根据用户的不同,我如何分离数据,或者我们可以说分组数据。我的意思是,我希望数据返回两个不同用户的两个数组。假设如果xyz有2个文档,则应返回该用户的2个文档数组,abc有4个文档,则应返回4个文档数组

它们不应合并返回abc的数据应单独返回xyz的数据应单独返回。

2用户应维护2个不同的阵列

期望值

我们编写模式以实现此行为的技巧或方法,

您可以使用或查询Transformer或,这三个函数允许您基于授权数据实现数据访问

有点复杂,但它允许您更灵活地自定义访问控制。它更适合于复杂的情况