delete_mongo_history.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # -*- coding: utf-8 -*-
  2. # @Time : 2023/1/5 10:00
  3. # @Author : XuJiakai
  4. # @File : delete_mongo_history
  5. # @Software: PyCharm
  6. import datetime
  7. from project_const import MONGODB_NAME
  8. from sdk.WinhcAllClient import get_all_client
  9. all_client = get_all_client()
  10. del_col = all_client.get_mongo_collection(MONGODB_NAME + '_del')
  11. def _get_remove_ds(start_ds):
  12. start_date = datetime.datetime.strptime(start_ds, "%Y%m%d")
  13. last_week = datetime.datetime.today() + datetime.timedelta(days=-7)
  14. result = []
  15. while start_date < last_week:
  16. date_str = start_date.strftime("%Y%m%d")
  17. result.append(date_str)
  18. start_date += datetime.timedelta(days=1)
  19. pass
  20. return result
  21. pass
  22. def remove_mongo_history():
  23. res = del_col.find_one()
  24. del_info = None
  25. if res:
  26. start_ds = res['_id'].split('_')[0]
  27. result_date = _get_remove_ds(start_ds)
  28. del_list = []
  29. for i in result_date:
  30. print(f"delete prefix: {i} ...")
  31. res = del_col.delete_many({"_id": {"$regex": "^" + i}})
  32. str = f"deleted prefix: {i} , deleted_count: {res.deleted_count}"
  33. del_list.append(str)
  34. print(str)
  35. pass
  36. del_info = '\n'.join(del_list)
  37. return del_info
  38. pass
  39. if __name__ == '__main__':
  40. remove_mongo_history()
  41. pass