问题:
我不是javascript / meteor语法专家
我想要实现的目标:
用变量替换.find()内的查询以使代码更简单
我的代码:
嗯..这段代码基本上搜索了集合。它将找到已安装的项目或已安装的具有特定名称的项目。
Template.xxx.helpers({
case_a: () => {
if(A === true){
var case1 = case_1.find({ isInstalled: true }).fetch();
var case2 = case_2.find({ isInstalled: true }).fetch();
} else {
var case1 = case_1.find({ "name": {$regex: (".*"+searchText+".*"), $options: 'i'}, isInstalled: true }).fetch();
var case2 = case_2.find({ "name": {$regex: (".*"+searchText+".*"), $options: 'i'}, isInstalled: true }).fetch();
}
var ret = case1.concat(case2);
return ret;
}
});
我想知道的事情:
分配给查询的正确语法
Template.xxx.helpers({
case_a: () => {
var query = {};
if(A === true){
query = { isInstalled: true };
} else {
query = { "name": {$regex: (".*"+searchText+".*"), $options: 'i'}, isInstalled: true };
}
var case1 = case_1.find({ query }).fetch();
var case2 = case_2.find({ query }).fetch();
var ret = case1.concat(case2);
return ret;
}
});
任何帮助将不胜感激!!
答案 0 :(得分:2)
由于query
是一个对象,因此可以直接传递给find()
方法。
case_1.find(query)
而不是
case_1.find({query})