Created
May 9, 2016 02:25
-
-
Save diggzhang/9216d603eac6f0d4d16541cb86defe8b to your computer and use it in GitHub Desktop.
区分注册用户与体验用户表
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# _*_ coding:utf-8 _*_ | |
import re | |
from pymongo import MongoClient | |
from bson.objectid import ObjectId | |
import jwt | |
import time | |
import datetime | |
# TODO: change mongo env as online configure | |
v3_5_DB_instance = MongoClient('10.8.8.111', 27017)['eventsV35testuse'] | |
event_collection = v3_5_DB_instance['eventV35'] | |
visitors_collection = v3_5_DB_instance['visitors'] | |
black_list_device_collection = v3_5_DB_instance['visitors_black_list'] | |
visitors = [] # V | |
daily_device_id = [] # A | |
daily_device_user = [] # B | |
black_list_device = [] # C Means somebody already resgister | |
""" | |
当日范围内: | |
daily_device_id 发送埋点,但是未注册用户 | |
daily_device_user 发送埋点,并注册的用户 | |
""" | |
daily_device_id = list(event_collection.distinct("device")) | |
daily_device_user = list(event_collection.distinct("device", {"user": {"$exists": True}})) | |
print("device数: %s / device with userId数: %s")%(len(daily_device_id), len(daily_device_user)) | |
black_list_device = black_list_device_collection.distinct("device") | |
black_list_device = set(set(black_list_device) | set(daily_device_user)) | |
for device in list(black_list_device): | |
if list(black_list_device_collection.find({"device": device})) == []: | |
black_list_device_collection.insert({"device": device}) | |
print("已经注册过账户的设备: %d")%len(black_list_device) | |
# A - B | |
today_visitors = set(set(daily_device_id) - set(daily_device_user)) | |
visitors = visitors_collection.distinct("device") | |
# V U (A - B) | |
visitors = set(set(visitors) | set(today_visitors)) | |
# [V U (A - B)] - B | |
visitors = set(set(visitors) - set(daily_device_user)) | |
# {[V U (A - B)] - B} - C | |
visitors = set(set(visitors) - set(black_list_device)) | |
for visitor in visitors: | |
if list(visitors_collection.find({"device": visitor})) == []: | |
visitors_collection.insert({"device": visitor}) | |
print("游客设备: %d")%len(visitors) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment