【问题标题】:How to sort by calculated propery/virtual attribute in Meteor?如何按 Meteor 中计算的属性/虚拟属性排序?
【发布时间】:2012-11-20 00:26:17
【问题描述】:
最近开始玩Meteor,遇到一个问题:
我有存储在 MongoDB 中并表示测试的记录集合,每个测试记录都有嵌套的测试执行结果集合/数组。
在前端,我试图显示按成功或失败的测试执行次数排序的测试列表。该数字不存储在数据库中,是计算的结果。
谁能提出一个想法如何在 Meteor 中实现它?我还没有找到一种按计算属性排序的方法,并且正在寻找如何制作基于真实的虚拟/代理集合并显示/排序虚拟但还没有找到任何东西的想法。
非常感谢您的帮助。
【问题讨论】:
标签:
javascript
mongodb
meteor
【解决方案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
}
});
根据您的应用程序的规模和流量,您需要决定每次请求测试文档时都会发生的读取是否比写入测试文档本身的显式成功和失败计数更昂贵或更便宜.