Meteor从数组返回值,以便在另一个集合中使用它

Meteor return value from array to use it in another collection

本文关键字:集合 另一个 数组 返回值 Meteor      更新时间:2023-09-26

这个问题与我之前的问题几乎相同:流星以字符串形式返回值,但我还没有把它全部计算出来。

我的情况:我得到了集合users和集合Projects。在我的Projects集合中,我得到了一个文档"Invited",其中包含一组受邀用户(他们的用户ID)。像这样:

{
"_id" : "XpS6CLJpujtTKEdBe",
"projectname" : "Projectnaam 1",
"invited" : [
    "vcHkGjTMQG57tTPRG",
    "zhwaQTSRSA9RM3Phr",
    "3JxXtYmbqAMEBezti"
]
}

我想返回被邀请用户的名字和姓氏。但是名字和姓氏的集合在users集合中。因此,我从Array中获取ID,并使用每个ID来获取用户集合的Firstnameen-Surname。有人能帮我做到这一点吗?非常感谢。

您的,L

循环浏览每个项目,通过在用户集合中搜索文档邀请数组中的每个id来找到相关的用户文档,并使用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>