[英]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.