尝试过滤“;引号"基于'"类别“;使用流星&mongo
Trying to filter "Quotes" based on '"Category" using meteor & mongo
所以我遇到了一些麻烦。我有一个报价清单,每个报价都有类别。
我不确定如何构建这个的最佳解决方案,所以我决定制作两个系列。一个用于"报价",另一个则用于"类别"。
每个"报价"都有一个"类别",这是我插入数据库的类别的_ID。
我正试图根据我在网络应用程序中点击的"类别"来"筛选"报价列表。
我很难弄清楚该怎么做。
到目前为止,我已经创建了一个会话来存储我的"点击类别Id",但从那里我不知道如何过滤我的"报价"数据库以显示"ONLY Quotes WITH Category Id=session CAT_Id"
非常感谢您的帮助。
您应该真正指出当前代码的样子,这样我们就可以从一个引用开始了。然而,这是一个相当简单的任务,所以我继续提供了一个模拟示例:
模板:
{{#each quoteCategories}}
<button class="quote-category" value="{{_id}}">{{title}}</button>
{{/each}}
<ul>
{{#each quotes}}
<li>"{{content}}" — {{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({});
}
}
});
您的Collection架构很好。像MongoDB这样的noSQL数据库最好的一点是,您可以根据自己的需求真正选择规范化或非规范化。因此,对于您的结构,如果将其作为两个集合更容易处理,那么也没关系。一般来说,确定数据库结构的最佳方法是针对最重的使用进行优化,因此,对于读取量大的应用程序(大多数),使其更容易读取,对于写入量大的程序,使其易于写入(插入、更新)。结构可以根据这些需要而变化。
相关文章:
- 如何使用铁流星与流星的默认路线
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- 在流星上使用微信js-sdk时出现拒绝权限错误
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- 流星中DOM的繁殖
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- "工具提示"jQuery插件坏了
- "锻造;React中的表达式
- 尝试过滤“;引号"基于'"类别“;使用流星&mongo