@Test public void testIssue260() { createContentAndVersionData(); String map = "function () { emit(this.document_id, this.version); }"; String reduce = "function (key, values) { return Math.max.apply(Math, values); }"; MapReduceResults<ContentAndVersion> results = mongoTemplate.mapReduce( "jmr2", map, reduce, new MapReduceOptions().outputCollection("jmr2_out"), ContentAndVersion.class); int size = 0; for (ContentAndVersion cv : results) { if (cv.getId().equals("Resume")) { assertEquals(6, cv.getValue().longValue()); } if (cv.getId().equals("Schema")) { assertEquals(2, cv.getValue().longValue()); } if (cv.getId().equals("mongoDB How-To")) { assertEquals(2, cv.getValue().longValue()); } size++; } assertEquals(3, size); }
private void createContentAndVersionData() { /* { "_id" : 1, "document_id" : "mongoDB How-To", "author" : "Amos King", "content" : "...", "version" : 1 } { "_id" : 2, "document_id" : "mongoDB How-To", "author" : "Amos King", "content" : "...", "version" : 1.1 } { "_id" : 3, "document_id" : "Resume", "author" : "Author", "content" : "...", "version" : 6 } { "_id" : 4, "document_id" : "Schema", "author" : "Someone Else", "content" : "...", "version" : 0.9 } { "_id" : 5, "document_id" : "Schema", "author" : "Someone Else", "content" : "...", "version" : 1 } */ ContentAndVersion cv1 = new ContentAndVersion(); cv1.setDocumentId("mongoDB How-To"); cv1.setAuthor("Amos King"); cv1.setContent("..."); cv1.setVersion(1L); template.save(cv1, "jmr2"); ContentAndVersion cv2 = new ContentAndVersion(); cv2.setDocumentId("mongoDB How-To"); cv2.setAuthor("Amos King"); cv2.setContent("..."); cv2.setVersion(2L); template.save(cv2, "jmr2"); ContentAndVersion cv3 = new ContentAndVersion(); cv3.setDocumentId("Resume"); cv3.setAuthor("Author"); cv3.setContent("..."); cv3.setVersion(6L); template.save(cv3, "jmr2"); ContentAndVersion cv4 = new ContentAndVersion(); cv4.setDocumentId("Schema"); cv4.setAuthor("Someone Else"); cv4.setContent("..."); cv4.setVersion(1L); template.save(cv4, "jmr2"); ContentAndVersion cv5 = new ContentAndVersion(); cv5.setDocumentId("Schema"); cv5.setAuthor("Someone Else"); cv5.setContent("..."); cv5.setVersion(2L); template.save(cv5, "jmr2"); }