最近开始玩Meteor并遇到了一个问题: 我有存储在MongoDB中的记录集合并代表测试,每个测试记录都有嵌套的测试执行结果集合/数组。 在前端我试图显示按成功或失败的测试执行次数排序的测试列表。该数字不存储在DB中,是计算结果。
任何人都可以提出如何在Meteor中实现这一点的想法吗?我还没有找到一种按计算属性排序的方法,并且正在寻找如何进行基于真实虚拟/代理收集以及显示/排序虚拟但尚未找到任何内容的想法。
非常感谢您的帮助。
答案 0 :(得分:1)
根据我对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
}
});
根据您的应用程序的规模和流量,您需要决定是否每次请求测试文档时都会发生此读取或多或少,然后写入明确的成功&无法计算测试文档本身。