convert-null-to-empty-granted-arrays.ts 798 B

12345678910111213141516171819202122232425262728293031
  1. import type { IPageHasId } from '@growi/core';
  2. import mongoose from 'mongoose';
  3. import { type PageModel } from '~/server/models/page';
  4. export const convertNullToEmptyGrantedArrays = async(): Promise<void> => {
  5. const Page = mongoose.model<IPageHasId, PageModel>('Page');
  6. const requests = [
  7. {
  8. updateMany: {
  9. // Matches documents where field is null or nonexistent
  10. // https://www.mongodb.com/docs/manual/tutorial/query-for-null-fields/#equality-filter
  11. filter: { grantedUsers: null },
  12. update: {
  13. $set: { grantedUsers: [] },
  14. },
  15. },
  16. },
  17. {
  18. updateMany: {
  19. filter: { grantedGroups: null },
  20. update: {
  21. $set: { grantedGroups: [] },
  22. },
  23. },
  24. },
  25. ];
  26. await Page.bulkWrite(requests);
  27. };