Merge pull request #5756 from overleaf/tm-history-batched-update-descending

Add BATCH_DESCENDING to reverse processing order of batchedUpdate

GitOrigin-RevId: fb6aff20713dfd8fe6c6a78b64505d96ce4bfb14
This commit is contained in:
Thomas 2021-11-11 16:10:01 +01:00 committed by Copybot
parent 5c5f42df1f
commit 302a6fddc8

View file

@ -1,6 +1,7 @@
const { ReadPreference, ObjectId } = require('mongodb')
const { db, waitForDb } = require('../../app/src/infrastructure/mongodb')
const BATCH_DESCENDING = process.env.BATCH_DESCENDING === 'true'
const BATCH_SIZE = parseInt(process.env.BATCH_SIZE, 10) || 1000
let BATCH_LAST_ID
if (process.env.BATCH_LAST_ID) {
@ -10,12 +11,16 @@ if (process.env.BATCH_LAST_ID) {
async function getNextBatch(collection, query, maxId, projection, options) {
maxId = maxId || BATCH_LAST_ID
if (maxId) {
query._id = { $gt: maxId }
if (BATCH_DESCENDING) {
query._id = { $lt: maxId }
} else {
query._id = { $gt: maxId }
}
}
const entries = await collection
.find(query, options)
.project(projection)
.sort({ _id: 1 })
.sort({ _id: BATCH_DESCENDING ? -1 : 1 })
.limit(BATCH_SIZE)
.toArray()
return entries