def failureRetetion(top10MasterList): pipeLine = [{ "$match": { "eventKey": "challengeFailure", "eventValue.topicId": top10MasterList } }, { "$group": { "_id": None, "users": { "$addToSet": "$user" } } }] completeMasterNum = len(list(events.aggregateMaster(pipeLine))) pipeLine = [{ "$match": { "eventKey": "startChallenge", "eventValue.topicId": top10MasterList } }, { "$group": { "_id": None, "users": { "$addToSet": "$user" } } }] startMasterNum = len(list(events.aggregateMaster(pipeLine))) return getPercent.getPerNum(completeMasterNum, startMasterNum)
def failureRetetion(top10MasterList): pipeLine = [ {"$match": {"eventKey": "challengeFailure", "eventValue.topicId": top10MasterList}}, {"$group": {"_id": None, "users": {"$addToSet": "$user"}}}, ] completeMasterNum = len(list(events.aggregateMaster(pipeLine))) pipeLine = [ {"$match": {"eventKey": "startChallenge", "eventValue.topicId": top10MasterList}}, {"$group": {"_id": None, "users": {"$addToSet": "$user"}}}, ] startMasterNum = len(list(events.aggregateMaster(pipeLine))) return getPercent.getPerNum(completeMasterNum, startMasterNum)
def successFinishRetetion(top10MasterList): pipeLine = [ { "$match": { "eventKey": {"$in": ["challengeFailure", "challengeSuccess"]}, "eventValue.topicId": {"$in": top10MasterList}, } }, {"$group": {"_id": None, "users": {"$addToSet": "$user"}}}, ] successAndFailureNum = len(list(events.aggregateMaster(pipeLine))) pipeLine = [ {"$match": {"eventKey": "startChallenge", "eventValue.topicId": {"$in": top10MasterList}}}, {"$group": {"_id": None, "users": {"$addToSet": "$user"}}}, ] finishNum = len(list(events.aggregateMaster(pipeLine))) return getPercent.getPerNum(successAndFailureNum, finishNum)
def successFinishRetetion(top10MasterList): pipeLine = [{ "$match": { "eventKey": { "$in": ["challengeFailure", "challengeSuccess"] }, "eventValue.topicId": { "$in": top10MasterList } } }, { "$group": { "_id": None, "users": { "$addToSet": "$user" } } }] successAndFailureNum = len(list(events.aggregateMaster(pipeLine))) pipeLine = [{ "$match": { "eventKey": "startChallenge", "eventValue.topicId": { "$in": top10MasterList } } }, { "$group": { "_id": None, "users": { "$addToSet": "$user" } } }] finishNum = len(list(events.aggregateMaster(pipeLine))) return getPercent.getPerNum(successAndFailureNum, finishNum)
def completionRate(mEvent, dEvent, top10TopicsList): m = dataset.aggregateTopic(mEvent, top10TopicsList) mNum = len(m['user']) + len(m['device']) d = dataset.aggregateTopic(dEvent, top10TopicsList) dNum = len(d['user']) + len(d['device']) return getPercent.getPerNum(mNum, dNum)
def completionRate(mEvent, dEvent, top10TopicsList): m = dataset.aggregateTopic(mEvent, top10TopicsList) mNum = len(m['user']) + len(m['device']) d = dataset.aggregateTopic(dEvent, top10TopicsList) dNum = len(d['user']) + len(d['device']) return getPercent.getPerNum(mNum,dNum)