import os import sys import apilib.utils_mongo PROJECT_ROOT = os.path.join(os.path.abspath(os.path.split(os.path.realpath(__file__))[0] + "/..")) sys.path.insert(0, PROJECT_ROOT) from base import init_env init_env(interactive=True) import datetime from apps.web.device.models import Device from apps.web.core import db from apps.web.dealer.models import Dealer from apps.web.agent.models import Agent # Dealer and Agent : 18->20 dealers = Dealer.get_collection().find({'annualTrafficCost': 18}) for dealer in dealers: Dealer.get_collection().update({'_id': dealer['_id']}, {'$set':{'annualTrafficCost': 20}}) agents = Agent.get_collection().find({'annualTrafficCost': 18}) for agent in agents: Agent.get_collection().update({'_id': agent['_id']}, {'$set':{'annualTrafficCost': 20}}) print('1/3') # no expireDate, have dateTimeAdded devices1 = Device.get_collection().find({'dateTimeAdded': {'$ne': None}}) for device in devices1: if len(device['dateTimeAdded']) > 10: dateTimeAdded = datetime.datetime.strptime(device['dateTimeAdded'], "%Y-%m-%d %H:%M:%S") else: dateTimeAdded = datetime.datetime.strptime(device['dateTimeAdded'], "%Y-%m-%d") expireTime = dateTimeAdded + datetime.timedelta(days=365) deltaDay = (expireTime - datetime.datetime.now()).days if deltaDay < 7: expireTime = datetime.datetime.strptime('2018-10-15 00:00:00', '%Y-%m-%d %H:%M:%S') Device.get_collection().update( {'_id': device['_id']}, { '$set': {'expireDate': expireTime} } ) print('2/3') # no expireDate, no dateTimeAdded bulk = apilib.utils_mongo.BulkHandler(collection=Device.get_collection()) bulk.update( {'dateTimeAdded': None}, {'$set': { 'dateTimeAdded': '2017-11-01 00:00:00', 'expireDate': datetime.datetime.strptime('2018-11-01 00:00:00', '%Y-%m-%d %H:%M:%S') }} ) bulk.execute() print('done!')