mongodb.js 669 B

123456789101112131415161718192021222324252627282930
  1. const Settings = require('settings-sharelatex')
  2. const { MongoClient, ObjectId } = require('mongodb')
  3. const clientPromise = MongoClient.connect(
  4. Settings.mongo.url,
  5. Settings.mongo.options
  6. )
  7. let setupDbPromise
  8. async function waitForDb() {
  9. if (!setupDbPromise) {
  10. setupDbPromise = setupDb()
  11. }
  12. await setupDbPromise
  13. }
  14. const db = {}
  15. async function setupDb() {
  16. const internalDb = (await clientPromise).db()
  17. db.docHistory = internalDb.collection('docHistory')
  18. db.docHistoryIndex = internalDb.collection('docHistoryIndex')
  19. db.projectHistoryMetaData = internalDb.collection('projectHistoryMetaData')
  20. }
  21. module.exports = {
  22. db,
  23. ObjectId,
  24. waitForDb
  25. }