@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");
  }