建立mongodb查询的标准

时间:2016-01-17 14:05:34

标签: jquery mongodb meteor

我需要能够联系不同的字段值,以动态的方式构建我的最终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);
        });
    })

1 个答案:

答案 0 :(得分:1)

这种模式发生了很多。您有一个包含多个字段的搜索表单,但用户可以键入任何字段。例如,假设您有一个包含firstNamelastNamecompany过滤条件的搜索表单,并且您希望找到匹配的人员。要构建正确的查询,您需要执行以下操作:

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);