Răsfoiți Sursa

Merge pull request #70 from overleaf/spd-rearchive-end-parameter

Add 'endId' parameter to rearchive script
Simon Detheridge 6 ani în urmă
părinte
comite
f7e4c95cb8
1 a modificat fișierele cu 13 adăugiri și 5 ștergeri
  1. 13 5
      services/docstore/scripts/rearchive-all-docs.js

+ 13 - 5
services/docstore/scripts/rearchive-all-docs.js

@@ -61,20 +61,28 @@ async function rearchiveAllDocs() {
   // start from an objectId and run in ascending order, so we can resume later
   const query = {}
   const startId = params._[0]
+  const endId = params.e
   if (startId) {
-    const validator = new RegExp('^[0-9a-fA-F]{24}$')
-    if (!validator.test(startId)) {
-      console.error('Invalid object id')
-      return
+    if (!new RegExp('^[0-9a-fA-F]{24}$').test(startId)) {
+      throw new Error('Invalid start object id')
     }
     query._id = {
-      $gt: ObjectId(startId)
+      $gte: ObjectId(startId)
     }
     console.log(`Starting from object ID ${startId}`)
   } else {
     console.log('No object id specified. Starting from the beginning.')
   }
 
+  if (endId) {
+    if (!new RegExp('^[0-9a-fA-F]{24}$').test(endId)) {
+      throw new Error('Invalid end object id')
+    }
+    query._id = query._id || {}
+    query._id.$lte = ObjectId(endId)
+    console.log(`Stopping at object ID ${endId}`)
+  }
+
   const results = (await getCollection('projects'))
     .find(query, { _id: 1 })
     .sort({ _id: 1 })