2016-12-28 3 views
0

Gibt es eine Java MongoDB-Bibliothek, die das Ausführen nativer JSON-Aggregationsabfragen unterstützt? Es scheint, dass MongoTemplate von spring-data-mongo und sogar MongoClient alle eine Art von Java-Abstraktion erfordern. Aber ich möchte meine Abfragen einfach in einer externen Datei im JSON-Format speichern und sie einfach ohne zusätzliche Abstraktionsschicht ausführen, damit sie einfach wiederverwendet werden können. Ähnlich wie bei nativen SQL-Abfragen.MongoDB Java-Bibliothek, die native Aggregationsabfragen unterstützt

Antwort

0

Sie können das mit MongoTemplate tun.

Hier ist ein Beispiel für einen Frühling Repository:

@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); 
      } 

     } 
    } 
Verwandte Themen