Я работаю над Spring Boot 2.2.6.RELEASE
и Spring Data Mongo
. Перед тем как опубликовать вопрос, я просмотрел группу spring data mongodb по , но не совсем ясно по нескольким вопросам.
1) Включите все поля, кроме departments
и lastUpdateDate
и createDate
.
2) Как применить здесь нумерацию страниц?
Sample MongoDocument
{
"_id" : ObjectId("5ea82ba25ae8cb2d70e2dc3b"),
"createDate" : ISODate("2014-10-10T07:07:49.000Z"),
"updatedBy" : "John",
"lastUpdateDate" : ISODate("2015-01-09T04:43:59.000Z"),
"firstName" : "Laxmi",
"lastName" : "Dekate",
"age" : "LTU",
.........
..........
"departments" : [
{
"deptName" : "LT",
"deptCd" : "KU",
"status" : "A"
},
{
"deptName" : "AL",
"deptCd" : "PN",
"status" : "A"
},
....
....
.... //around 50 records
],
"role" : {
"roleCd" : "1",
"roleName" : "Africa",
"status" : "A",
"subRole" : [
{
"subRoleName" : "XYZ",
.....
},
{
"subRoleName" : "AAA",
.....
},
// around 10 embeeded array
]
},
}
Код - этот код дает мне все поля в ответе и без подробностей о нумерации страниц
SkipOperation skipOp = Aggregation.skip((long) pageRequest.getPageNumber() * pageRequest.getPageSize());
LimitOperation limitOp = Aggregation.limit(pageRequest.getPageSize());
SortOperation sortOperation = CommonUtil.getSortOperation(pageRequest);
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.group("role.roleCd").push(Aggregation.ROOT).as("employees"),
Aggregation.facet(skipOp, limitOp).as("dataResponse"));
AggregationResults<Response> empRes =
mongoTemplate.aggregate(aggregation, mongoTemplate.getCollectionName(Employee.class),
Response.class);
System.out.println(empRes);