20260603120000_recreate_libraryReferences_search_indexes_without_collation.mjs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import Helpers from './lib/helpers.mjs'
  2. const tags = ['saas']
  3. const oldIndexes = [
  4. {
  5. key: { userId: 1, searchKey: 1 },
  6. name: 'userId_1_searchKey_1',
  7. collation: { locale: 'en', strength: 1 },
  8. },
  9. {
  10. key: { userId: 1, 'fields.searchValue': 1, 'fields.name': 1 },
  11. name: 'userId_1_fields.searchValue_1_fields.name_1',
  12. collation: { locale: 'en', strength: 1 },
  13. },
  14. ]
  15. const newIndexes = [
  16. {
  17. key: { userId: 1, searchKey: 1 },
  18. name: 'userId_1_searchKey_1',
  19. },
  20. {
  21. key: { userId: 1, 'fields.searchValue': 1, 'fields.name': 1 },
  22. name: 'userId_1_fields.searchValue_1_fields.name_1',
  23. },
  24. ]
  25. const migrate = async client => {
  26. const { db } = client
  27. await Helpers.dropIndexesFromCollection(db.libraryReferences, oldIndexes)
  28. await Helpers.addIndexesToCollection(db.libraryReferences, newIndexes)
  29. }
  30. const rollback = async client => {
  31. const { db } = client
  32. await Helpers.dropIndexesFromCollection(db.libraryReferences, newIndexes)
  33. await Helpers.addIndexesToCollection(db.libraryReferences, oldIndexes)
  34. }
  35. export default {
  36. tags,
  37. migrate,
  38. rollback,
  39. }