来自数组的流星返回值,以便在另一个集合

时间:2015-11-18 15:48:06

标签: javascript mongodb meteor

这个问题与我之前的问题几乎相同: 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。任何人都可以帮我实现这个目标吗?谢谢!

此致, →

1 个答案:

答案 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>