Created
December 20, 2016 02:56
-
-
Save diggzhang/5d09c5645c626a8c1ab3e38c5bfb6f01 to your computer and use it in GitHub Desktop.
pymongo clean up docs
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 sys | |
import pymongo | |
from pymongo import MongoClient | |
from datetime import datetime | |
import datetime | |
import json | |
from StringIO import StringIO | |
import time | |
from datetime import date | |
import calendar | |
import subprocess | |
import dateutil.parser | |
db_host = MongoClient("10.8.8.111", 27017) | |
db_events_v4 = db_host["eventsV4"] | |
collections_eventV4 = db_events_v4['eventV4'] | |
class get_collection_start_end_count(object): | |
def __init__(self, arg): | |
self.collecion_instance = arg | |
def count_docs(self, start, end): | |
collecion = self.collecion_instance | |
return collecion.count({ | |
"serverTime": { | |
"$gte": start, | |
"$lt": end | |
}, | |
"platform": "backend" | |
}) | |
def remove_docs(self, start, end): | |
collecion = self.collecion_instance | |
return collecion.delete_many({ | |
"serverTime": { | |
"$gte": start, | |
"$lt": end | |
}, | |
"platform": "backend" | |
}) | |
print("### 创建数据库实例") | |
eventV4_Instance = get_collection_start_end_count(collections_eventV4) | |
print("### 创建时间范围") | |
base_date = datetime.datetime(2016, 11, 22, 16) | |
date_nums = 15 | |
date_list = [base_date + datetime.timedelta(days=x) for x in range(0, date_nums)] | |
for this_day in date_list: | |
start_date = this_day | |
end_date = this_day + datetime.timedelta(days=1) | |
count = eventV4_Instance.count_docs(start_date, end_date) | |
print end_date.strftime("%Y%m%d"),":" ,count | |
print("Clean up docs") | |
removed = eventV4_Instance.remove_docs(start_date, end_date) | |
print start_date.strftime("%Y%m%d"),":",removed.deleted_count |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment