使用Spring数据条件查找到Mongodb中特定行索引之前的记录数,并使用分页查询

问题描述

我的mongodb中有200条记录,我想执行基本搜索操作以及自动建议功能。当我在搜索文本框中键入内容时,记录列表应在下拉列表中显示为建议。如果我从建议列表中选择记录,那么我想找到该记录所在页面的特定记录的页码,这样我就可以提取该特定页面的所有50条记录,并可以在其中突出显示所选记录。显示所有记录的数据面板。

我在写查询以查找所选记录的页码时遇到问题,我正在通过UI传递所选记录的ID,并基于该ID,我想查找该记录的页码

我尝试使用计数查询,但是直到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"
}

]

我想知道以下记录在哪个pageNumber上可用。为此,我需要一个总记录数,直到ABC5记录。

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

以便我可以找到这样的pageNumber;

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"
    },]

有人可以帮忙吗?

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)