我是Meteor和MongoDB的新手。我想问一下如何在MongoDB中动态搜索数据。我的尝试是:
Template.MainTemplate.ItemsFounded = function() {
return ITEM.find({ItemName:{$regex: Session.get('SearchItemName')}});
};
Template.TemplateSearchItem.events({
'click .SearchItem' : function() {
var $itemName = $('#TextboxSearchItemName');
Session.set('SearchItemName', '/'+ $itemName.val()+ '/');
}
});
当它运行时,它什么都没显示..有人可以帮助我吗?对不起我的愚蠢问题..
谢谢
问题可能来自这样一个事实:你没有构建一个正则表达式,而是一个简单的字符串:
Session.set('SearchItemName', '/'+ $itemName.val()+ '/');
为了构建一个正则表达式,你应该创建一个新的RegExp
对象,用于Mongo $regex
query。您还应该重写“ItemsFounded”,因为它不是在Meteor中声明助手的正确方法:
Template.TemplateSearchItem.events({
'click .SearchItem' : function() {
var $itemName = $('#TextboxSearchItemName');
Session.set('SearchItemName', $itemName.val());
}
});
...
Template.MainTemplate.helpers({
ItemsFounded: function() {
var regex = new RegExp(Session.get('SearchItemName'), 'i'); //'i' for case insensitive search
return ITEM.find({ItemName:{$regex: regex}});
}
});