2016-12-28 65 views
0

是否有支持執行本機JSON聚合查詢的Java MongoDB庫?看起來來自spring-data-mongo的MongoTemplate甚至是MongoClient都需要某種Java抽象。但我想簡單地將我的查詢以JSON格式存儲在外部文件中,只需執行它們而不需要任何額外的抽象層,以便它們可以簡單地重用。與原生SQL查詢類似。支持本地聚合查詢的MongoDB Java庫

回答

0

你可以用MongoTemplate來做到這一點。

這裏的春天庫的例子:

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

     } 
    }