2014-07-01 64 views
0

我使用parse.com我的應用程序的數據存儲等... 我有一個快速的問題,當用戶打開我的應用程序,他們是針對自己的儀表板,在其儀表板上有一個餅圖顯示數據。我在解析一個類,其中一個顏色是一個屬性,有6種不同的顏色。Parse.com多計數查詢

我想在餅圖中顯示顏色值,即6紅,3黃,2藍等。我通過谷歌研究了這個,並提出了這個https://www.parse.com/questions/can-i-manage-multiple-count-queries-in-a-single-call,其中指出,不可能有多個計數查詢然而,單一的電話,這是2年前發佈,我想知道一個。如果自此以後b有任何進展。如果不是什麼是最好的方式去做這件事。

如果我讓6個不同的電話,我不得不等待,直到我得到的呼叫從第六數查詢回顯示餅圖則可能會有一些延遲這是不好的用戶體驗了。

如果有人對此有任何提示我會感激

回答

7

我建議建立一個Cloud Code Function查詢並行的計數和一個響應返回結果。我已經在使用Parse的項目上成功地使用了它。

事情是這樣的:

Parse.Cloud.define("dashboard", function(request, response) { 
    // create each query and start it 
    var red = new Parse.Query("A").equalTo("colour", "red").count(); 
    var blue = new Parse.Query("A").equalTo("colour", "blue").count(); 

    // wait for them all to complete using Parse.Promise.when() 
    // result order will match the order passed to when() 
    Parse.Promise.when(red, blue).then(function(countOfRed, countOfBlue) { 
     response.success({ 
      red: countOfRed, 
      blue: countOfBlue 
     }); 
    }); 
}); 
+0

感謝您的回覆。我很抱歉我沒有遵循100%。我有桌子/班'A',其中我有一個列的顏色,我想獲得每種顏色的總和。你介意再解釋一下嗎?不勝感激。 –

+0

我編輯了答案以匹配您的場景。希望有所幫助。 – ryanjduffy

+0

遺憾繼續這一點,但如果我想根據當前用戶過濾呢?通常它會是query.equalTo(「userId」,userid);但有了這個承諾,我不確定。 –