Javascript 如何在cube js中基于用户名获取数据
定义 我已经将我的cube js后端连接到mongodb。我以以下方式将文档存储在mongo db数据库中 这就是我的文档在MONGO DB中的外观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&
{
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或,这三个函数允许您基于授权数据实现数据访问
有点复杂,但它允许您更灵活地自定义访问控制。它更适合于复杂的情况