Javascript “正在尝试筛选”;引述;基于'&引用;类别“;使用流星&;蒙戈

Javascript “正在尝试筛选”;引述;基于'&引用;类别“;使用流星&;蒙戈,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,所以我有点麻烦。我有一个报价列表,每个报价都有类别 我不确定如何构建这个的最佳解决方案,所以我决定创建两个集合。一个用于“引用”,一个用于“类别” 每个“Quote”都有一个“Category”,它是我插入数据库的类别的ID 我正在尝试根据我在webapp中单击的“类别”来“过滤”报价列表 我很难弄明白怎么才能做到这一点 到目前为止,我已经创建了一个会话来存储我的“单击的类别Id”,但从那里我不知道如何过滤我的“报价”数据库以显示“仅具有类别Id=会话类别Id的报价” 非常感谢您的帮助。您应该指

所以我有点麻烦。我有一个报价列表,每个报价都有类别

我不确定如何构建这个的最佳解决方案,所以我决定创建两个集合。一个用于“引用”,一个用于“类别”

每个“Quote”都有一个“Category”,它是我插入数据库的类别的ID

我正在尝试根据我在webapp中单击的“类别”来“过滤”报价列表

我很难弄明白怎么才能做到这一点

到目前为止,我已经创建了一个会话来存储我的“单击的类别Id”,但从那里我不知道如何过滤我的“报价”数据库以显示“仅具有类别Id=会话类别Id的报价”


非常感谢您的帮助。

您应该指出您当前的代码是什么样子的,这样我们就有了一个参考。然而,这是一项相当简单的任务,因此我继续并提供了一个模拟示例:

模板:

{{#each quoteCategories}}
    <button class="quote-category" value="{{_id}}">{{title}}</button>
{{/each}}

<ul>
{{#each quotes}}
    <li>"{{content}}" &mdash; {{author}}</li>
{{/each}}
</ul>
模板帮助程序

Template.quotesList.events({
    'click button.quote-category': function(event) {
        var categoryId = $(event.target).val();
        Session.set('quote-category-id', categoryId);
    }
});
Template.quotesList.helpers({
    'quoteCategories': function() {
        return QuoteCategories.find({});
    },
    'quotes': function() {
        var categoryId = Session.get('quote-category-id');
        if(categoryId) {            
            return Quotes.find({category: categoryId});
        } else {
            return Quotes.find({});
        }
    }
});

你的收藏架构很好。像MongoDB这样的noSQL数据库最好的一点是,您可以根据需要选择规范化或非规范化。因此,对于您的结构,如果它更容易作为两个集合使用,那么这很好。一般来说,确定DB结构的最佳方法是针对最重的使用进行优化,因此,对于读量较大的应用程序(大多数应用程序)使其更易于读取,或者对于写量较大的应用程序使其易于写入(插入、更新)。根据这些需求,结构可能会有所不同。

谢谢,实际上我刚刚写了几乎完全相同的东西。这比我想象的要简单。@user2302401 Nps,有机会请在答案上打勾。确定基本要素的好地方是: