使用Meteor渲染MongoDB文档

时间:2012-07-31 17:44:18

标签: meteor

问题是:如何显示从Mongodb返回的复杂文档。

假设我的Projects集合中有两个项目,并且每个项目都有2个People来自People集合中的ID。 Project.find()返回此CURSOR,我将其呈现为JSON以提高可读性:

{ "_id" : "5ed5ade8-c140-46f7-8d9e-2344fc53df8e",  "name" : "Project1", "personnel" : [ "b4690c4b-d126-4737-8f40-921234567890", "977a6335-a1be-4af5-8b3f-4abcdefghijk" ] }
{ "_id" : "23f073c7-a713-4713-86a7-7d6600433146", "name" : "Project2", "personnel" : [ "b4690c4b-d126-4737-8f40-92b43072d7a1", "977a6335-a1be-4af5-8b3f-48cd5f8328db" ]}

我的模板在.html文件中:

<template name="theProjects">
     {{#each theTitles}}
          Name: {{name}}
          Personnel: {{personnel}}
     {{/each}}
</template>

在浏览器中呈现:

  

名称:Project1

     
    

人员:b4690c4b-d126-4737-8f40-921234567890,977a6335-a1be-4af5-8b3f-4abcdefghijk

  
     

名称:Project2

     
    

人员:b4690c4b-d126-4737-8f40-92b43072d7a1,977a6335-a1be-4af5-8b3f-48cd5f8328db

  

问题:

  1. {{personnel}}字段只是由Projects collect中的人员阵列的内容填充。我想在他们自己的行上单独列出这些。无法弄清楚。切片不会因为......

  2. 更明显的需要是能够操纵和编辑人员数据,因此模板必须适当地对流星进行反应。

  3. 现在很难:People系列中的人员ID嵌入在Project文档中。我如何使用Meteor用Personnel集合中的相应名称替换ID,并保持其数据反应性?

  4. 我知道这有很多要问,但这些事情似乎是更大,更复杂的网站的基础。

    谢谢大家。

2 个答案:

答案 0 :(得分:3)

https://gist.github.com/3220991

这是我向你展示使用Handlebars助手的要点。这将保持反应性并且非常易于使用。我希望你能用它。

如果您需要更多帮助或意见,请提及我。

答案 1 :(得分:0)

也许你应该在mongodb的文档中查看mapReduce,这里有一篇类似的帖子讨论同一主题:https://stackoverflow.com/a/8746805/1349943