Библиотека MongoDB Java, поддерживающая собственные запросы агрегации

Существует ли библиотека Java MongoDB, поддерживающая выполнение собственных запросов агрегации JSON? Похоже, что MongoTemplateот spring-data-mongo и MongoClientвовсе требуется какая-то Java абстракция. Но я хотел бы просто сохранить мои запросы во внешнем файле в формате JSON и просто выполнить их без какого-либо дополнительного уровня абстракции, чтобы они могли быть просто повторно использованы. Похож на собственные SQL-запросы.

1 ответ

  1. Вы можете сделать это с MongoTemplate.

    Вот пример хранилища Spring :

    @Autowired
        private MongoTemplate mongoTemplate;
    
        @PostConstruct
        public void addMarketsToDB() {
            if (mongoTemplate.findOne(new Query(), MarketEntity.class) == null) {
                URL url = this.getClass().getResource("/marches.json");
    
                byte[] encoded;
                try {
                    encoded = Files.readAllBytes(Paths.get(url.toURI()));
    
                    BasicDBObject obj = new BasicDBObject();
                    obj.append("$eval", new String(encoded));
    
                    mongoTemplate.executeCommand(obj);
                } catch (IOException | URISyntaxException e) {
                    LOGGER.error("{} addMarketsToDB -> failed to read file", LOG_HEADER);
                }
    
            }
        }