Найдите количество записей до определенного индекса строки в Mongodb, используя запрос критериев данных Spring с постраничным доступом

#mongodb #pagination #spring-data #spring-data-mongodb

#mongodb #разбивка на страницы #spring-data #spring-data-mongodb

Вопрос:

У меня в mongodb 200 записей, я хочу выполнить базовую операцию поиска вместе с функцией автоматического предложения. Когда я набираю что-либо в текстовом поле поиска, список записей должен отображаться в виде предложения в раскрывающемся списке. Если я выбираю запись из списка предложений, я хочу найти номер страницы этой конкретной записи, на какой странице эта запись появляется, основываясь на этом, я могу получить все 50 записей этой конкретной страницы, и я могу выделить выбранную запись на моей панели данных, где я показываю все записи.

Я столкнулся с проблемой при написании запроса для поиска номера страницы выбранной записи. Я передаю идентификатор выбранной записи из пользовательского интерфейса и на основе этого идентификатора я хочу найти номер страницы этой записи.

Я пытался использовать запрос count, но я не нашел способа подсчитать количество записей до определенного индекса строки в Mongo, поэтому на основе этого я могу вычислить номер страницы.

 [
{
    "name": "ABC1",
    "id": "33d47e5da3a08555dceb17e34"
},
{
    "name": "ABC2",
    "id": "5f47e5da3a08555dceb17e8f"
},
{
    "name": "ABC3",
    "id": "5f47e5da3a08555dceb17e99"
},
{
    "name": "ABC4",
    "id": "5f47e5da3a08555dceb17e77"
},
{
    "name": "ABC5",
    "id": "5f47e5da3a08555dceb17e66"
},
{
    "name": "ABC6",
    "id": "5f47e5da3a08555dceb17e55"
},
{
    "name": "ABC7",
    "id": "5f47e5da3a08555dceb17e78"
},
{
    "name": "ABC8",
    "id": "5f47e5da3a08555dceb17e68"
},
{
    "name": "ABC9",
    "id": "5f47e5da3a08555dceb17e55"
}
  

]

Я хочу знать, на каком номере страницы доступна приведенная ниже запись. Для этого мне нужно общее количество записей до записи ABC5.

 {
    "name": "ABC5",
    "id": "5f47e5da3a08555dceb17e66"
}
  

Чтобы я мог найти номер страницы следующим образом;

 int pageNumber = count/pageLimit;

final int pageLimit = 3;
int pageNumber = count/pageLimit;
Page<T> page = repository.findAll(new PageRequest(pageNumber, pageLimit));
  

И это должно быть моим окончательным результатом:

     [
    {
        "name": "ABC4",
        "id": "5f47e5da3a08555dceb17e77"
    },
    {
        "name": "ABC5",
        "id": "5f47e5da3a08555dceb17e66"
    },
    {
        "name": "ABC6",
        "id": "5f47e5da3a08555dceb17e55"
    },
]
  

Может кто-нибудь, пожалуйста, помочь в этом?

Заранее спасибо.

Комментарии:

1. I'm facing issue можете ли вы уточнить это? Можете ли вы показать нам, что вы уже сделали?

2. Я использую запрос критериев для получения количества всех записей до определенной строки. Исходя из этого, я могу вычислить номер страницы для извлечения записей конкретной страницы с помощью Pagable. Но я не могу этого сделать, потому что у нас нет функции автоматического увеличения в отсортированном порядке.