包含对象ID的数组上的猫鼬过滤器

时间:2020-10-18 11:12:41

标签: node.js arrays mongoose filter

我一直在搜索Stack帖子数小时,但似乎找不到我真正需要的东西。我有一个Blog模式,并且在索引页面上,我希望用户可以选择按作者筛选。但是,我在努力获得唯一的作者列表感到困惑。要创建页面过滤器,我需要作者用户名和objectId,但是当我尝试对包含objectid的数组进行过滤时,它将无法正常工作。

仅基于作者用户名的此过滤器可以正常工作:

let uniqueAuthors = [];
allBlogs.forEach(blog => {
    if (!uniqueAuthors.includes(blog.author.username)) {
       uniqueAuthors.push(blog.author.username);
       return uniqueAuthors;
    }
});

但是,如果我还要推送author.id,则过滤器将不再起作用(uniqueAuthors也将返回所有重复的作者)。

let uniqueAuthors = [];
allBlogs.forEach(blog => {
    if (!uniqueAuthors.includes(blog.author.username)) {
       uniqueAuthors.push([blog.author.username, blog.author.id]);
       return uniqueAuthors;
    }
});

我过滤此数据的正确/最佳方法是什么?

0 个答案:

没有答案