SpringData Mongo在mapReduce操作后未创建outputCollection

时间:2019-02-07 20:12:55

标签: spring mongodb mapreduce spring-data

考虑以下代码片段-

 MapReduceResult<CookiesResult> result = mongoTemplate.mapReduce(
                "cookies",
                cookieMapFn,
                cookieResultFn,
                new MapReduceOptions().outputCollection("cookiesMapReduced"),
                CookiesResult.class
);

return mongoTemplate.find(new Query(new Criteria("cookies").gte(5)),
                          CookiesResult.class, "cookiesMapReduced").iterator();

我能够运行此MapReduce操作,甚至可以在result变量中获得我期望的结果。我相信我正在运行的MapReduce查询的实际语义没有问题。

但是我需要将此结果存储到临时集合“ cookiesMapReduced”中,但驱动程序似乎并未在创建该集合吗?从Spring文档中看来,我似乎已经进行了所有设置,以将结果写入集合中,而不是“内联”({out: {inline : 1}}

我缺少的MapReduceOptions中有东西吗?我也尝试设置outputDatabase,但是根据documentation's example我需要设置的全部是outputCollection

1 个答案:

答案 0 :(得分:0)

事实证明,未创建的集合是Spring-data Mongo 2.0.8中的错误。它在2.0.10中已修复,现在将处理MapReduceOptions对象。

有关更多信息,您可以在https://jira.spring.io/上签出DATAMONGO-2027