2012-12-02 33 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 
    } 
}); 

根据应用程序的规模和流量,你需要决定这个读,这将发生在每次请求的测试文档时,是否或多或少昂贵的,然后写一个明确的成功&失败指望测试文档本身。

相关问题