我如何通过MongoTemplate执行shell脚本文件

时间:2017-04-21 10:28:49

标签: mongodb spring-data-mongodb

我需要使用MongoTemplate执行我的x-report.js文件并获取集合(输出以便在UI中显示)。我试过很多方面,但我找不到任何解决方案。

  StringBuilder text = new StringBuilder();
    BufferedReader br = new BufferedReader(new FileReader(
            new ClassPathResource("x-report.js").getFile()));
    try {
        while (true) {
            String line = br.readLine();
            if (line == null)
                break;
            text.append(line).append("\n");
        }
    } finally {
        try { br.close(); } catch (Exception ignore) {}
    }
    BasicDBObject obj = new BasicDBObject();
    obj.append("$eval", text.toString());
    System.out.println(mongoTemplate.executeCommand(obj));

我使用的是Mongo 3.2.0版本,但是MongoDB 3+版本已经删除了$ eval。然后我尝试了“命令”

   com.mongodb.DB mongoDb = mongoTemplate.getDb();
    CommandResult cr = mongoDb.command(mongoScript());
    System.out.println("Command Restults------->" + cr.size());


private String mongoScript() {
    String st = "db.ReportData.find({\"createdDate\": {$gte:ISODate(\"2017-03-31T00:00:00.000Z\"), $lte:ISODate(\"2017-04-20T00:00:00.000Z\")}})";
    return st;
}

这样我也无法执行我的脚本。请有人帮助我。

0 个答案:

没有答案