Javascript 如何检索在Mixpanel';中执行特定事件的用户;使用JQL的Arb数据库?
我最近一直在使用Mixpanel的Javascript查询语言,以分析用户行为。我为下面提到的问题陈述提出了两种不同的查询变体,但似乎都不适合我。其中一个我张贴在下面。有人能告诉我正确的方法来编写查询以获得所需的结果吗 问题陈述:查找执行“xyz”、“abc”和“dfg”事件的用户的所有不同id JSON格式的数据库(使用虚拟数据,使用相同格式的数据时,实际数据库要大得多): 我写的查询:Javascript 如何检索在Mixpanel';中执行特定事件的用户;使用JQL的Arb数据库?,javascript,json,nosql,Javascript,Json,Nosql,我最近一直在使用Mixpanel的Javascript查询语言,以分析用户行为。我为下面提到的问题陈述提出了两种不同的查询变体,但似乎都不适合我。其中一个我张贴在下面。有人能告诉我正确的方法来编写查询以获得所需的结果吗 问题陈述:查找执行“xyz”、“abc”和“dfg”事件的用户的所有不同id JSON格式的数据库(使用虚拟数据,使用相同格式的数据时,实际数据库要大得多): 我写的查询: function main() { return Events({ from_da
function main() {
return Events({
from_date: "2017-06-26",
to_date: "2017-06-27"
})
.groupByUser(function(state, events) {
var flag_abc = false, flag_xyz = false, flag_dfg = false, count_unique = 0;
for (var i = 0; i < events.length - 1; i ++){
if (count_unique === 3){
state = true;
return state;
}
if (events[i].name === "abc" && !flag_abc ){
count_unique += 1;
flag_abc = true;
}
else if(events[i].name === "xyz" && !flag_xyz){
count_unique += 1;
flag_xyz = true;
}
else if(events[i].name === "dfg" && !flag_dfg){
count_unique += 1;
flag_dfg = true;
}
}
state = false;
return state;
})
.filter(function(arr){
if(arr.value === false)
return false;
else
return true;
})
}
函数main(){
返回事件({
自2017年6月26日起,
截止日期:“2017-06-27”
})
.groupByUser(函数(状态、事件){
var flag_abc=false,flag_xyz=false,flag_dfg=false,count_unique=0;
对于(var i=0;i
这段代码有局限性
for (var i = 0; i < events.length - 1; i ++){
if (count_unique === 3){
state = true;
return state;
}
if (events[i].name === "abc" && !flag_abc ){
count_unique += 1;
flag_abc = true;
}
else if(events[i].name === "xyz" && !flag_xyz){
count_unique += 1;
flag_xyz = true;
}
else if(events[i].name === "dfg" && !flag_dfg){
count_unique += 1;
flag_dfg = true;
}
}
我不是在寻找优化。我正在寻找另一种方法来用JQL编写同样的东西。现在,这个查询检索到错误的结果,即使逻辑对我来说似乎是正确的。任何熟悉Mixpanel的JQL或实际使用它的人,都会非常感谢您的帮助。我在这里谈论的JQL实际上是编写本地javascript代码来查询您的数据库,与jquery不同。
for (var i = 0; i < events.length - 1; i ++){
if (count_unique === 3){
state = true;
return state;
}
if (events[i].name === "abc" && !flag_abc ){
count_unique += 1;
flag_abc = true;
}
else if(events[i].name === "xyz" && !flag_xyz){
count_unique += 1;
flag_xyz = true;
}
else if(events[i].name === "dfg" && !flag_dfg){
count_unique += 1;
flag_dfg = true;
}
}
var data = ["12", "14", "12", "11"];
console.log(jQuery.unique( data ));
gives : ["12", "14", "11"]
count_unique => will be size of array
flag_abc => check if in array abc exist