我需要使用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;
}
这样我也无法执行我的脚本。请有人帮助我。