mirror of
https://github.com/Graylog2/graylog2-server.git
synced 2026-03-13 09:32:21 +08:00
Pagination
This commit is contained in:
@@ -10,5 +10,7 @@ public interface EntityFieldGroupingService {
|
||||
String fieldName,
|
||||
String query,
|
||||
String groupFilter,
|
||||
int page,
|
||||
int pageSize,
|
||||
Subject subject);
|
||||
}
|
||||
|
||||
@@ -33,6 +33,8 @@ public class MongoEntityFieldGroupingService implements EntityFieldGroupingServi
|
||||
final String fieldName,
|
||||
final String query,
|
||||
final String groupFilter,
|
||||
final int page,
|
||||
final int pageSize,
|
||||
final Subject subject) {
|
||||
final MongoCollection<Document> mongoCollection = mongoConnection.getMongoDatabase().getCollection(collectionName);
|
||||
final var userCanReadAllEntities = permissionsUtils.hasAllPermission(subject) ||
|
||||
@@ -41,7 +43,9 @@ public class MongoEntityFieldGroupingService implements EntityFieldGroupingServi
|
||||
if (userCanReadAllEntities) {
|
||||
final AggregateIterable<Document> results = mongoCollection.aggregate(List.of(
|
||||
Aggregates.group("$" + fieldName, Accumulators.sum(COUNT_FIELD_NAME, 1)),
|
||||
Aggregates.sort(Sorts.descending(COUNT_FIELD_NAME))
|
||||
Aggregates.sort(Sorts.descending(COUNT_FIELD_NAME, "_id")),
|
||||
Aggregates.skip((page - 1) * pageSize),
|
||||
Aggregates.limit(pageSize)
|
||||
));
|
||||
|
||||
List<EntityFieldGroup> result = new ArrayList<>();
|
||||
|
||||
@@ -46,7 +46,7 @@ public class SliceByResource extends RestResource {
|
||||
@QueryParam("query") @DefaultValue("") String query) {
|
||||
|
||||
return new SliceByResponse(
|
||||
entitySuggestionService.groupByField(collection, column, query, "TBD", getSubject()),
|
||||
entitySuggestionService.groupByField(collection, column, query, "TBD", page, perPage, getSubject()),
|
||||
null
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user