UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

62 lines (55 loc) 2.37 kB
// tslint:disable:no-console import * as moment from 'moment'; import * as mongoose from 'mongoose'; import { chevre } from '../../../lib/index'; // const project = { id: String(process.env.PROJECT_ID) }; // tslint:disable-next-line:max-func-body-length async function main() { await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false }); const actionRepo = await chevre.repository.Action.createInstance(mongoose.connection); // tslint:disable-next-line:no-increment-decrement no-magic-numbers for (let index = 0; index < 24 * 1000; index++) { const updateResult = await actionRepo.unsetUnnecessaryFields({ filter: { typeOf: { $eq: chevre.factory.actionType.UseAction }, 'object.typeOf': { $exists: true, $eq: chevre.factory.reservationType.EventReservation }, // actionStatus: { $eq: chevre.factory.actionStatusType.CompletedActionStatus }, startDate: { // $exists: true, $gte: moment() .add(-(index + 1), 'hours') .toDate(), $lte: moment() .add(-index, 'hours') .toDate() } // _id: { $eq: '61da235d94a80f000af85f6b' } }, $unset: { 'object.0.issuedThrough.availableChannel': 1, 'object.0.issuedThrough.serviceType': 1, 'object.0.reservationFor.superEvent': 1, 'object.0.reservationFor.location': 1, 'object.0.reservationFor.name': 1, 'object.0.reservedTicket.issuedBy': 1, 'object.0.reservedTicket.ticketType.description': 1, 'object.0.reservedTicket.ticketType.name': 1, 'object.0.reservedTicket.ticketType.additionalProperty': 1, 'object.0.reservedTicket.ticketType.category': 1, 'object.0.reservedTicket.ticketType.color': 1 } }); console.log( 'unset processed.', updateResult, -index, 'hours', moment.duration(index, 'hours') .asDays(), 'days' ); } } main() .then(() => { console.log('success!'); }) .catch(console.error);