【发布时间】:2014-05-10 19:32:07
【问题描述】:
我正在尝试按照文档使用 Spring Data Mongo 运行 mapReduce
http://docs.spring.io/spring-data/data-mongodb/docs/1.0.0.M5/reference/html/
我在加载 javascript 文件时遇到了问题。当我包含我的 map.js 和 reduce.js 文件时,会出现换行符,例如 \n\r\t 等。我使用此在线工具 http://jscompress.com/ 将文件压缩为一行。然后加载文件,但出现错误:
org.springframework.dao.InvalidDataAccessApiUsageException:命令执行失败:错误[ns不存在],
原因:com.mongodb.CommandFailureException: { "serverUsed" : "/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "ns 不存在"} 在 com.mongodb.CommandResult.getException(CommandResult.java:71) 在 com.mongodb.CommandResult.throwOnError(CommandResult.java:110) 在 org.springframework.data.mongodb.core.MongoTemplate.handleCommandError(MongoTemplate.java:1814) ... 32 更多
我尝试将文件加载为字符串并转义 javascript。相同的 javascript 使用 mongo 驱动程序运行良好,即。
MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("product_data");
DBCollection catalogData = db.getCollection("catalogData");
MapReduceCommand cmd = new MapReduceCommand(catalogData, stringMap, stringReduce, "map_reduce_java_test", MapReduceCommand.OutputType.REPLACE, null);
catalogData.mapReduce(cmd);
这不起作用:
mongoOperations.mapReduce("catalogData", stringMap, stringReduce, new MapReduceOptions().outputCollection("map_reduce_java_test")
.finalizeFunction(stringFinalize).outputTypeReplace(),
CatalogItem.class);
感谢任何帮助或想法。
【问题讨论】:
标签: java spring spring-data-mongodb