Skip to content

Instantly share code, notes, and snippets.

@diggzhang
Created May 9, 2016 02:25
Show Gist options
  • Save diggzhang/9216d603eac6f0d4d16541cb86defe8b to your computer and use it in GitHub Desktop.
Save diggzhang/9216d603eac6f0d4d16541cb86defe8b to your computer and use it in GitHub Desktop.
区分注册用户与体验用户表
# _*_ 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