2016-12-28 12 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); 
      } 

     } 
    } 
関連する問題