如何在Meteor中按计算的属性/虚拟属性进行排序?

Kos*_*nko 6 javascript mongodb meteor

最近开始玩Meteor并遇到了一个问题:我收集了存储在MongoDB中的记录并代表测试,每个测试记录都有嵌套的测试执行结果集合/数组.在前端我试图显示按成功或失败的测试执行次数排序的测试列表.该数字不存储在DB中,是计算结果.

任何人都可以提出一个想法如何在Meteor中实现它?我还没有找到一种按计算属性排序的方法,并且正在寻找如何制作基于真实的虚拟/代理集合以及显示/排序虚拟但尚未找到任何内容的想法.

非常感谢您的帮助.

rob*_*pim 0

根据我使用 Meteor 的经验,您需要的是集合/文档转换。一些代码,我试图使其与您的上下文相关(未测试)。

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
    }
});
Run Code Online (Sandbox Code Playgroud)

根据应用程序的规模和流量,您需要决定每次请求测试文档时都会发生的读取是否比写入测试文档本身的显式成功和失败计数更昂贵或更便宜。