@historydev
Острая аллергия на анимешников

Как реализовать смену коллекций в фасаде для монго?

Есть вот такая абстракция на данный момент, хотелось бы без лишних параметров реализовать смену коллекций:
Код
export class MongoDB {

	private $client;
	private $db;
    constructor(
		private serverUrl: string = `mongodb://${process.env.MONGO_IP}`,
		private dbName: string = 'db'
	) {
		this.$client = new MongoClient('mongodb://' + serverUrl);
		this.$db = this.$client.db(dbName);
    }

	protected insertMany() {

	}

	protected insertOne() {

	}

	protected findOne() {

	}

	protected find() {

	}

	protected setCollection(name: string) {

	}

	protected disconnect() {

	}

	protected connect() {

	}

}

По идее, мы вызываем класс один раз и используем его для всех роутов или по одному на каждый.
У класса есть метод setCollection, допустим у нас будет поле $collection и по вызову метода, мы изменяем коллекцию на нужную нам, в этом случае корректная работа будет только у singleton экземпляров.
Как можно добиться смены коллекции без гонки для работы с одним экземпляром? Я посматриваю в сторону воркер тредов, но для http сервера это такое себе как по мне.
  • Вопрос задан
  • 29 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы