agreacje w mongo-java-driver

0

Chcę wybrać maksymalną datę dla pola data z kolekcji 4programmers.

W Mongo Shell mogę zrobić tak:

db.getCollection("4programmers").aggregate([
    {
        $group:
        {
            _id: null,
            max : {$max:  "$date"}
        }
    }
])

zwraca dokument z ISODate("2017-10-20T17:12:37.000+02:00") czyli najpóźniejsza data

A w Javie jak? Próbuję tak:

Date d = collection.aggregate(
                Arrays.asList(
                        Aggregates.group("$date", Accumulators.max("maxx", "$date"))
                        )
                ).first().getDate("maxx");
        System.out.println(d);

ale zwraca: Fri Oct 20 00:44:50 CEST 2017 czyli przed przed najpóźniejszą datę, (lub inaczej: najpóźniejszy dzień, ale najwcześnijesza godzina)
Wszystkich dokumentów jest ponad 1000 w kolekcji.

0

powinno być:

Date d = collection.aggregate(
                Arrays.asList(
                        Aggregates.group(null, Accumulators.max("maxx", "$date"))
                        )
                ).first().getDate("maxx");
        System.out.println(d);

1 użytkowników online, w tym zalogowanych: 0, gości: 1