create-indexes.ts 843 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import mongoose from 'mongoose';
  2. import loggerFactory from '~/utils/logger';
  3. const logger = loggerFactory('growi:service:yjs:create-indexes');
  4. export const createIndexes = async (collectionName: string): Promise<void> => {
  5. const collection = mongoose.connection.collection(collectionName);
  6. try {
  7. await collection.createIndexes([
  8. {
  9. key: {
  10. version: 1,
  11. docName: 1,
  12. action: 1,
  13. clock: 1,
  14. part: 1,
  15. },
  16. },
  17. // for metaKey
  18. {
  19. key: {
  20. version: 1,
  21. docName: 1,
  22. metaKey: 1,
  23. },
  24. },
  25. // for flushDocument / clearDocument
  26. {
  27. key: {
  28. docName: 1,
  29. clock: 1,
  30. },
  31. },
  32. ]);
  33. } catch (err) {
  34. logger.error('Failed to create Index', err);
  35. throw err;
  36. }
  37. };