Используя Spring Data Mongodb, возможно ли получить максимальное значение поля без извлечения и повторения всей коллекции?

Используя mongoTemplate.find(), я указываю Query с помощью которого я могу вызвать .limit()или .sort():

.limit()возвращает объект Query
.sort()возвращает объект Sort

. Учитывая это, я могу сказать Query().limit(int).sort(), но это не выполняет желаемую операцию, а просто сортирует ограниченный набор результатов.

Я также не могу вызвать Query().sort().limit(int), так как .sort() возвращает Sort()

Итак, используя Spring Data, как мне выполнить следующее, как показано в оболочке mongoDB? Может быть, есть способ передать необработанный запрос, который я еще не нашел?

Я бы не против расширить интерфейс пейджинга, если потребуется... только это, похоже, ничему не помогает. Спасибо!

> j = { order: 1 }
{ "order" : 1 }
> k = { order: 2 }
{ "order" : 2 }
> l = { order: 3 }
{ "order" : 3 }
> db.test.save(j)
> db.test.save(k)
> db.test.save(l)
> db.test.find()
{ "_id" : ObjectId("4f74d35b6f54e1f1c5850f19"), "order" : 1 }
{ "_id" : ObjectId("4f74d3606f54e1f1c5850f1a"), "order" : 2 }
{ "_id" : ObjectId("4f74d3666f54e1f1c5850f1b"), "order" : 3 }
> db.test.find().sort({ order : -1 }).limit(1)
{ "_id" : ObjectId("4f74d3666f54e1f1c5850f1b"), "order" : 3 }
5
задан Community 22 September 2017 в 18:01
поделиться