【问题标题】:OData count for pagination, filtering and searching用于分页、过滤和搜索的 OData 计数
【发布时间】:2014-04-26 22:10:16
【问题描述】:

$top$skip 一起使用的是@odata.count 注释(另请参见http://docs.oasis-open.org/odata/odata-json-format/v4.0/os/odata-json-format-v4.0-os.html#_Toc372793054)。

我不确定它与上述查询选项的表现如何。 count 会返回“后面”的计数,即原始集合的计数,而不应用 top 和 skip 吗?

另外$filter$search是怎么回事?

对于前端分页,如果存在过滤器或搜索,最好查看集合的计数,以及过滤集合的计数。类似的东西

Showing 10 of 27 records (filtered from 530 records)

10 将是来自 $top 的结果(即响应 json 的 value 的实际负载),27 将是过滤/搜索的结果数量,530 将是原始集合的计数。

除了 $count 之外还有什么可以实现的吗,或者 $count 实际上是关于什么的?

【问题讨论】:

    标签: json pagination odata


    【解决方案1】:

    这些查询选项的含义在http://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html 中定义。

    您可以在http://services.odata.org/v4/OData/OData.svc 上与他们一起计划,例如: http://services.odata.org/v4/OData/OData.svc/Products?$count=true&$top=2&$orderby=ID%20desc&$filter=ID%20lt%208 结果:

    {
        "@odata.context": "http://services.odata.org/V4/OData/OData.svc/$metadata#Products",
        "@odata.count": 8,
        "value": [
            {
                "ID": 7,
                "Name": "DVD Player",
                "Description": "1080P Upconversion DVD Player",
                "ReleaseDate": "2006-11-15T00:00:00Z",
                "DiscontinuedDate": null,
                "Rating": 5,
                "Price": 35.88
            },
            {
                "ID": 6,
                "Name": "Pink Lemonade",
                "Description": "36 Ounce Cans (Pack of 3)",
                "ReleaseDate": "2006-11-05T00:00:00Z",
                "DiscontinuedDate": null,
                "Rating": 3,
                "Price": 18.8
            }
        ]
    }
    

    但是$skip好像不行。

    【讨论】:

    • 我还是没看出来是不是完全采集量、过滤结果量和分页量有区别...?在所示示例中,有显式数量“8”和隐式数量 2(这是 value[] 项的计数)。那么在这种情况下,8 指的是什么?收款金额还是 $filter 金额?
    • 好吧,对不起,我自欺欺人了:看起来“计数”是指与 $top 和 $skip 无关的金额,但考虑到 $filter。
    猜你喜欢
    • 2022-01-07
    • 2018-08-17
    • 2017-09-22
    • 2023-03-06
    • 2018-10-25
    • 1970-01-01
    • 2020-05-19
    • 2015-12-03
    • 1970-01-01
    相关资源
    最近更新 更多