我很担心这是最好的方法,因为我没有设法找到一个可以轻松解决这个问题的软件包,其他类似问题的答案也没有解决这个问题。
我需要一个模板,列出日期并显示每天创建的所有文档,例如:
2015年10月27日 - 文件A. - 文件B
2015年10月26日 - 文件C. - 文件D. - 文件E
或者,不那么模糊:
2014年10月23日 - 约翰史密斯在巴斯凯得到10分 - 保罗·阿特雷德斯在未来告诉上获得20分
2014年10月21日 - 海森堡在国家贸易中获得25分 - 等等。
例如,显示的文档类似于“报告”集合,将“玩家”与“活动”结合在一起。
实现此功能的正确方法是什么? 我想创建一个Days Collection不是最好的选择。
提前致谢
答案 0 :(得分:0)
您可以在模板助手中创建一天数组,使用{{#each}}
进行迭代,然后让另一个助手返回每天的文档光标。
<强> HTML:强>
<template name="docsByDay">
{{#each days}}
Date: {{this}} <!-- 'this' will be an individual date ->
{{#each documents this}}
{{content}}
{{/each}}
{{/each}}
</template>
将{{content}}
替换为您要从集合中显示的任何字段。
<强> JS:强>
Template.docsByDay.helpers({
days: function(){
var arrayOfDates =[];
// create your array based on the date range and interval you want
return arrayOfDates;
},
documents: function(d){
var start = Date(getFullYear(d),getMonth(d),getDate(d));
var end = Date(getFullYear(d),getMonth(d),getDate(d)+1);
return Documents.find({ date: { $gte: start, $lt: end }});
}
});