yuto-o 4 ani în urmă
părinte
comite
8482364a40

+ 13 - 21
packages/app/src/migrations/20210921173042-add-is-trashed-field.js

@@ -11,38 +11,30 @@ module.exports = {
     logger.info('Apply migration');
     mongoose.connect(config.mongoUri, config.mongodb.options);
 
-    const deletedPageStatusQuery = { status: Page.STATUS_DELETED };
-
-    const PAGE_COUNT = await Page.count(deletedPageStatusQuery);
-    const OFFSET = 1000;
-    let skip = 0;
-
-    const deletedPagesPromises = [];
     const addFieldRequests = [];
+    const updateDeletedPageIds = [];
 
-    while (PAGE_COUNT > skip) {
-      deletedPagesPromises.push(Page.find(deletedPageStatusQuery).select('_id').skip(skip).limit(OFFSET));
-      skip += OFFSET;
-    }
-
-    for await (const deletedPages of deletedPagesPromises) {
-      const deletedPageIdList = deletedPages.map(deletedPage => deletedPage._id);
+    for await (const deletedPage of Page.find({ status: Page.STATUS_DELETED }).select('_id').cursor()) {
+      updateDeletedPageIds.push(deletedPage._id);
       addFieldRequests.push(
         {
           updateMany: {
-            filter: { relatedPage: { $in: deletedPageIdList } },
+            filter: { relatedPage: deletedPage._id },
             update: { $set: { isPageTrashed: true } },
           },
         },
-        {
-          updateMany: {
-            filter: { relatedPage: { $nin: deletedPageIdList } },
-            update: { $set: { isPageTrashed: false } },
-          },
-        },
       );
     }
 
+    addFieldRequests.push(
+      {
+        updateMany: {
+          filter: { relatedPage: { $nin: updateDeletedPageIds } },
+          update: { $set: { isPageTrashed: false } },
+        },
+      },
+    );
+
     try {
       await db.collection('pagetagrelations').bulkWrite(addFieldRequests);
       logger.info('Migration has successfully applied');