这个问题与我之前的问题几乎相同: Meteor return value as string,但我仍然没有全力以赴。
我的情况:
我收到了一个集合users
和一个集合Projects
。
在我的Projects
集合中,我收到了一个文档“邀请”,其中包含一系列受邀用户(他们的用户ID)。
像这样:
{
"_id" : "XpS6CLJpujtTKEdBe",
"projectname" : "Projectnaam 1",
"invited" : [
"vcHkGjTMQG57tTPRG",
"zhwaQTSRSA9RM3Phr",
"3JxXtYmbqAMEBezti"
]
}
我想返回受邀用户的名字和姓氏。但是姓氏集合的名字在users
集合中。所以我必须从Array中获取ID,并使用每个ID来获取users集合的Firstname en Surname。任何人都可以帮我实现这个目标吗?谢谢!
此致, →
答案 0 :(得分:1)
遍历每个项目,通过在文档的被邀请数组中搜索每个id的users集合来查找相关的用户文档,并使用map()
返回已修改的项目数组文档:
Template.projects.helpers({
projects: function(){
return Project.find({}).map(function (doc){
doc.invited = User.find({"_id": {"$in": doc.invited}}, {fields: {"firstname": true, "surname": true}});
return doc;
});
}
});
<template name="projects">
{{#each projects}}
<h1>{{this.projectname}}</h1>
<ol>
{{#each this.invited}}
<li>{{firstname}} {{lastname}}</li>
{{/each}}
</ol>
{{/each}}
</template>