Динамический доступ к коллекции базы данных Mongodb на основе параметров URL

#node.js #mongodb #express #mongoose #mern

Вопрос:

У меня есть конечная точка API в виде api/get?subject=экономика, и на основе этого параметра темы я получаю доступ к различным коллекциям баз данных в mongodb. Прямо сейчас я использую операторы switch case для доступа к требуемой базе данных на основе параметров субъекта. Это делает мой код очень длинным. Есть ли способ получить доступ к базе данных только по значению параметра субъекта? например, вместо использования этого

 const {subject}=req.query
switch (subject)
case "economics"
const data= await economics.find() 
break;
 

Я хочу иметь возможность использовать это

 const {subject}=req.query
const data=await subject.find() // here subject will refrence its value like economics or stats 
 

Комментарии:

1. вы пробовали?

2. Да, это дает тему ошибки.find() не является функцией

3. Вы должны передать переменную db() или что-то подобное. проверьте документы

Ответ №1:

Я думаю, что лучше передать модальный в качестве аргумента. Вот код, как я создал общий контроллер

https://gist.github.com/RMUSMAN/b7132fda6e945393882586c26b132e24

https://gist.github.com/RMUSMAN/c419d8149effb8514845946ad5b652f1

https://gist.github.com/RMUSMAN/f44ba2a20da35a2ce5ffd7517ea8fca8