我需要能够联系不同的字段值,以动态的方式构建我的最终mongoDB查询参数,这是一种标准构建。 有没有办法用流星或只是javascript做到这一点? 假设用户在配置文件中有一个部门字段,转移配置文件,如何累积几个参数在循环结束时的最终查询中。
criteria= {}
rules.each(function(rule){
rule.RulesSet.each(function(subRule){
if(subRule.type="equals"){
switch (subRule.code){
case 'department':
critera.department =subRule.value;
case 'shift':
critera.department =subRule.value;
}
}
}
Meteor.users.find(criteria);
});
})
答案 0 :(得分:1)
这种模式发生了很多。您有一个包含多个字段的搜索表单,但用户可以键入任何字段。例如,假设您有一个包含firstName
,lastName
和company
过滤条件的搜索表单,并且您希望找到匹配的人员。要构建正确的查询,您需要执行以下操作:
var query = {};
var firstName = $("#firstName").val();
var lastName = $("#lastName").val();
var company = $("company").val();
if ( firstName ) query.firstName = firstName;
if ( lastName ) query.lastName = lastName;
if ( company ) query.company = company;
var cursor = People.find(query);
如果要在循环中执行此操作,则每个输入字段都需要在db中具有id ==字段名称(或者名称==字段名称)。
var query = {};
$("input").each(function(i,el){
if ( $(el).val() ) query[el.id] = $(el).val();
});
MyCollection.find(query);