| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- const { getNextBatch } = require('./helpers/batchedUpdate')
- const { db, waitForDb } = require('../app/src/infrastructure/mongodb')
- const MODEL_NAME = process.argv.pop()
- const Model = require(`../app/src/models/${MODEL_NAME}`)[MODEL_NAME]
- function processBatch(batch) {
- for (const doc of batch) {
- const error = new Model(doc).validateSync()
- if (error) {
- const { errors } = error
- console.log(JSON.stringify({ _id: doc._id, errors }))
- }
- }
- }
- async function main() {
- await waitForDb()
- const collection = db[Model.collection.name]
- const query = {}
- const projection = {}
- let nextBatch
- let processed = 0
- let maxId
- while (
- (nextBatch = await getNextBatch(collection, query, maxId, projection))
- .length
- ) {
- processBatch(nextBatch)
- maxId = nextBatch[nextBatch.length - 1]._id
- processed += nextBatch.length
- console.error(maxId, processed)
- }
- console.error('done')
- }
- main()
- .then(() => {
- process.exit(0)
- })
- .catch(error => {
- console.error({ error })
- process.exit(1)
- })
|