根据用户个人资料中的数组在集合中查找

Find in a collection based on an array in user's profile

抱歉,如果这是一个基本问题,我对 javascript 和 Meteor 比较陌生。

我正在尝试创建一个推荐页面来推荐您已投票的网站。它获取 post 上的标签,并将它们作为数组放入 'tags' 下的用户配置文件中。

var websiteTags = Websites.findOne(website_id, {fields: {tag: 1} });
var getTags = websiteTags.tag;
Meteor.users.update(this_user, {$addToSet: {"profile.tags": getTags}});

然后在模板助手下,我尝试 return 一个网站列表,这些网站的标签与用户配置文件中的标签相同。

Template.user_recommended_list.helpers({
    websites:function(){
    var usersTags = Meteor.user().profile.tags;
        return Websites.find({tag: usersTags});
    }
}); 

如果我添加一个索引号,如:Meteor.user().profile.tags[0],它会起作用,但我需要针对网站标签列表查询多个用户标签。

我试过遍历用户标签,然后 return 每个值到页面,但它不起作用。最好的方法是什么?

提前致谢

只需在 mongo 查询中使用 $in 运算符:

return Websites.find({tag: {$in: usersTags}});