2012-12-02 58 views
7

最近和Meteor一起玩過並遇到過一個問題: 我有存儲在MongoDB中的記錄集合,它們代表測試,並且每個測試記錄都嵌套了測試執行結果的集合/數組。 在前端我試圖顯示按成功或失敗的測試執行次數排序的測試列表。該號碼不存儲在數據庫中,是計算結果。如何根據Meteor中計算的propery/virtual屬性進行排序?

任何人都可以提出一個想法如何實現在流星?我還沒有找到一種方法來按計算屬性進行排序,並且正在尋找如何使虛擬/代理收集基於真實虛擬/代理收集的想法,並顯示/排序虛擬但尚未找到任何東西。

非常感謝您的幫助。

+0

http://stackoverflow.com/questions/3212919/mongo-complex-sorting – tmadsen

回答

1

根據我對流星的經驗,你所追求的是集合/文檔轉換。一些代碼,我試圖使你的上下文相關(未測試)。

Tests = new Mongo.Collection('tests', { 
    transform: function(test) { 
     test.successCount = function(){ 
      return Results.find({ testId: test._id, success: true }).count(); 
     }; 

     test.failCount = function(){ 
      return Results.find({ testId: test._id, success: false }).count(); 
     }; 

     return test; //this line is mandatory, transform must return the document 
    } 
}); 

根據應用程序的規模和流量,你需要決定這個讀,這將發生在每次請求的測試文檔時,是否或多或少昂貴的,然後寫一個明確的成功&失敗指望測試文檔本身。

相關問題