簡體   English   中英

解析服務器 REST API - Group by 和 Sum

[英]Parse Server REST API - Group by and Sum

是否可以使用 Parse Server REST API 對值進行分組和求和。

例如https://parseapi.back4app.com/classes/myclass?groupby=name&sum=score

如果我有一個 100k 行的表,我不想讓客戶端下載所有結果以執行值的總和。

示例來源:

name    | score
frank   | 50
frank   | 20
ben     | 30

結果:

name    | score
frank   | 70
ben     | 30

是的,這是可能的。 根據Parse REST API Guide for Aggregate Queries ,您可以使用帶有以下查詢字符串的聚合計數操作執行分組

https://<parse_server_url>/parse/aggregate/myclass?group={"objectId": { "name" : "$name"},"total":{"$sum":"$score"}}

來自服務器的響應如下:

{
    "results": [
        {
            "total": 30,
            "objectId": {
                "name": "ben"
            }
        },
        {
            "total": 70,
            "objectId": {
                "name": "frank"
            }
        }
    ]
}

說明關鍵是使用/aggregate URI 而不是/classes URI 通過 Parse REST API 獲取此功能。

objectID 定義了“分組依據”字段。 如果您希望按多個字段分組,您可以在此列表中放置多個字段。

示例:

"objectId": { "groupByField1" : "$nameOfField1", "groupByField2" : "$nameOfField2"}

如果您希望在分組和聚合之前過濾掉一些記錄,您可以在查詢字符串中包含“匹配”參數。

示例:

https://<parse_server_url>/parse/aggregate/myclass?match={"name":"frank"}&group={"objectId": { "name" : "$name"},"total":{"$sum":"$score"}}

Groups 和 sum 未實現為 mongodb 中的后備數據庫,這屬於聚合管道。 我們目前正在為團體研究它。

遷移到擁有 PostgreSQL 的PostgREST ,這是一個能夠處理這些瑣碎事情的數據庫:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM