|
@@ -11,23 +11,37 @@ module.exports = {
|
|
|
logger.info('Apply migration');
|
|
logger.info('Apply migration');
|
|
|
mongoose.connect(config.mongoUri, config.mongodb.options);
|
|
mongoose.connect(config.mongoUri, config.mongodb.options);
|
|
|
|
|
|
|
|
- const deletedPages = await Page.find({ status: Page.STATUS_DELETED });
|
|
|
|
|
- const deletedPageList = deletedPages.map(deletedPage => deletedPage._id);
|
|
|
|
|
-
|
|
|
|
|
- const addFieldRequests = [
|
|
|
|
|
- {
|
|
|
|
|
- updateMany: {
|
|
|
|
|
- filter: { relatedPage: { $in: deletedPageList } },
|
|
|
|
|
- update: { $set: { isPageTrashed: true } },
|
|
|
|
|
|
|
+ const deletedPageStatusQuery = { status: Page.STATUS_DELETED };
|
|
|
|
|
+
|
|
|
|
|
+ const PAGE_COUNT = await Page.count(deletedPageStatusQuery);
|
|
|
|
|
+ const OFFSET = 1000;
|
|
|
|
|
+ let skip = 0;
|
|
|
|
|
+
|
|
|
|
|
+ const deletedPagesPromises = [];
|
|
|
|
|
+ const addFieldRequests = [];
|
|
|
|
|
+
|
|
|
|
|
+ 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);
|
|
|
|
|
+ addFieldRequests.push(
|
|
|
|
|
+ {
|
|
|
|
|
+ updateMany: {
|
|
|
|
|
+ filter: { relatedPage: { $in: deletedPageIdList } },
|
|
|
|
|
+ update: { $set: { isPageTrashed: true } },
|
|
|
|
|
+ },
|
|
|
},
|
|
},
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- updateMany: {
|
|
|
|
|
- filter: { relatedPage: { $nin: deletedPageList } },
|
|
|
|
|
- update: { $set: { isPageTrashed: false } },
|
|
|
|
|
|
|
+ {
|
|
|
|
|
+ updateMany: {
|
|
|
|
|
+ filter: { relatedPage: { $nin: deletedPageIdList } },
|
|
|
|
|
+ update: { $set: { isPageTrashed: false } },
|
|
|
|
|
+ },
|
|
|
},
|
|
},
|
|
|
- },
|
|
|
|
|
- ];
|
|
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
await db.collection('pagetagrelations').bulkWrite(addFieldRequests);
|
|
await db.collection('pagetagrelations').bulkWrite(addFieldRequests);
|