Мне нужно реализовать Spring boot - приложение MongoDb, в котором есть 2 БД mongo, которые имеют одинаковые имена и коллекции баз данныхИсходя из того, что пользователь делает запрос, мне нужно выбрать, выбирать ли данные из DB1 или DB2 (только разница в хосте mongo URI - IP).
Например, мне нужен какой-то способ создания 2-х mongoTemplates, таких как mTempA & mTempB вмой репозиторий и на основании некоторых условий используйте любой из шаблонов для выполнения запроса, как показано ниже:
@Repository
public class MyCustomRepository {
private Logger logger = LoggerFactory.getLogger(MyCustomRepository.class);
@Autowired
private MongoTemplateA mongoTemplateA;// Need to know if this is possible & how
@Autowired
private MongoTemplateB mongoTemplateB;// Need to know if this is possible & how
public List<MyModel> findByCriteria(MyRequest request) {
List<MyModel> result;
//Query query = <build query based on request>
if (request.getUserType().equals("A")) {
result = mongoTemplateA.find(query, MyModel.class);
} else {
result = mongoTemplateB.find(query, MyModel.class);
}
logger.debug("Result fetched with {} records", result.size());
return result;
}
}
Я не хочу иметь 2 отдельных репо (класса или интерфейсы) или разные модели для использования.Просто хотите иметь 2 разных mongoTemplates для инъекции в одном репо.
Возможно ли это?Если да, приведите пример кода.Я следовал ниже учебник: https://dzone.com/articles/multiple-mongodb-connectors-with-spring-boot