Mongodb 使用流星内相关收集的数据#每个
我有一个具有{name,id}字段的人员集合 我还有类似的字段,其中包含{user_id,foodName} 我想创建一个模板,将显示一个列表的人,他们喜欢的食物。我在模板中运行each,从Likes集合的查询中提取所有这些信息。我想从Likes中获取查询到的用户名,然后使用它从People集合中提取此人的关联姓名 我的模板如下所示:Mongodb 使用流星内相关收集的数据#每个,mongodb,templates,meteor,spacebars,Mongodb,Templates,Meteor,Spacebars,我有一个具有{name,id}字段的人员集合 我还有类似的字段,其中包含{user_id,foodName} 我想创建一个模板,将显示一个列表的人,他们喜欢的食物。我在模板中运行each,从Likes集合的查询中提取所有这些信息。我想从Likes中获取查询到的用户名,然后使用它从People集合中提取此人的关联姓名 我的模板如下所示: <template name="likes"> {{#each likes_list}} //This displays the user
<template name="likes">
{{#each likes_list}}
//This displays the user_id, but I want to have it display the user's name
<p>{{user_id}} likes {{foodName}}</p>
{{/each}}
</template>
Template.likes.helpers({
likes_list: function() {
return Likes.find();
}
});
我看到两种解决方案:
userName
字段添加到您的Likes
集合中,并将其显示为like
这是模板中的{{userName}}
您可以添加一个帮助器以返回用户数据上下文,然后将其与
和
一起使用:
html:
如果愿意,可以将其映射到单个对象中
Template.blah.helpers({
likes: function () {
return Likes.find().map(function (doc) {
return _.extend(doc, {
user: Meteor.users.findOne(doc.user_id)
});
});
}
});
这将向集合中添加user
字段,供您参考
{{#each likes}}
{{user.name}} likes {{foodName}}
{{/each}}
我想是客户端上的
Meteor.userId()
指定他有一个具有id
而不是\u id
的人集合,所以我一直在关注他的情况。如果人物集实际上是Meteor.users,那么这是一个简单的修改。我应该更具体一些。最终,我希望此功能与帐户facebook软件包配合使用。@MichelFloyd如何更改上述代码以实现此功能?
Template.blah.helpers({
likes: function () {
return Likes.find().map(function (doc) {
return _.extend(doc, {
user: Meteor.users.findOne(doc.user_id)
});
});
}
});
{{#each likes}}
{{user.name}} likes {{foodName}}
{{/each}}