mongodb.js 879 B

123456789101112131415161718192021222324252627282930
  1. const Metrics = require('@overleaf/metrics')
  2. const config = require('config')
  3. const { MongoClient } = require('mongodb')
  4. const client = new MongoClient(config.mongo.uri)
  5. const db = client.db()
  6. const chunks = db.collection('projectHistoryChunks')
  7. const blobs = db.collection('projectHistoryBlobs')
  8. const globalBlobs = db.collection('projectHistoryGlobalBlobs')
  9. const shardedBlobs = db.collection('projectHistoryShardedBlobs')
  10. const projects = db.collection('projects')
  11. // Temporary collection for tracking progress of backed up old blobs (without a hash).
  12. // The initial sync process will be able to skip over these.
  13. // Schema: _id: projectId, blobs: [Binary]
  14. const backedUpBlobs = db.collection('projectHistoryBackedUpBlobs')
  15. Metrics.mongodb.monitor(client)
  16. module.exports = {
  17. client,
  18. db,
  19. chunks,
  20. blobs,
  21. globalBlobs,
  22. projects,
  23. shardedBlobs,
  24. backedUpBlobs,
  25. }