2015-12-16 180 views

回答

5

GraphQL本身沒有自動聚集功能。

您可以添加一個名爲summary的字段,並在resolve函數中計算總數。

5

...需要graphql返回聚合計數?這可以做到嗎?

是的,可以這樣做。

GraphQL會自動爲您做?不,因爲它不知道/關心你從哪裏獲取數據源。

怎麼樣? GraphQL並沒有規定你如何獲取/變更用戶查詢的數據。取決於您的實施情況,以獲取所需的彙總數據。您可以直接從MongoDB獲取彙總數據並將其返回,或者從數據源獲取所需的所有數據並自行進行彙總。

11

您將定義一個新的GraphQL類型,它是一個包含列表和數字的對象。該數字將由解析器函數定義。

在您的GraphQL服務器上,您可以定義解析器功能,並且作爲其中的一部分,您必須編寫執行任何計算和查詢以獲取聚合計數所需的代碼。

這與您將如何編寫REST API的對象序列化程序或運行任何需要數據庫查詢以計算聚合計數的自定義REST API端點類似。

GraphQL的優勢在於它可以讓前端更強大地確定具體返回的數據。您在GraphQL中編寫的一些內容與您爲REST API編寫的內容相同。

+3

很好的解釋!我認爲主要的要點是GraphQL不會爲你做計算和聚合。所有這些都應該發生在GraphQL查詢對象的解析函數中,這需要被告知檢索所需的預先聚合的數據,對其進行處理,然後返回結果。 – batjko