猫鼬find()。或挂起

时间:2019-06-02 14:02:35

标签: node.js mongodb mongoose

mongodb的新手。我正在尝试进行多字段搜索查询。当我运行以下代码时,它会根据关键字正确返回结果。

var re = new RegExp(req.query.keyword, 'i');
Company.find({ 'name': { $regex: re }}, 
    function (err, company) {
        if (err) return next(err);
        res.send(company);
})

但是,当我尝试使用此代码使用find().or时,我的API只是挂起,然后超时而没有错误。

var re = new RegExp(req.query.keyword, 'i');
Company.find().or([{ 'name': { $regex: re }}, { 'url': { $regex: re }}], 
    function (err, company) {
        if (err) return next(err);
        res.send(company);
})

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:2)

Query.or并不将回调函数作为参数,因此您必须调用exec来执行查询

      //In this code on alert all data are been loaded
           var abxID = $('option:selected', this).val();
               debugger;
               $.getJSON('/Leave/EducationList/' + abxID, function (data) {
                   var items = '<option>Select Education Type</option>';
                   $.each(data, function (i, state) {
                       items += "<option value='" + state.Value + "'>" + state.Text + "</option>";
                       alert(state.Value + '   ' + state.Text);
                   });
                   $('#zaz').html(items);
                   alert(items);
               });





                  //Html select tag 

            <select id="zaz" name="zaz" ></select>





            //C# code


                  public JsonResult EducationList(string Id)
    {
        string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            SqlCommand cmd = new SqlCommand(@"Dotnet_Get_LeaveCodeListDD", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@id", Id);
            cmd.Connection = con;
            con.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            List<SelectListItem> li = new List<SelectListItem>();
            while (rdr.Read())
            {
                li.Add(new SelectListItem { Text = rdr["LeaveCode"].ToString(), Value = rdr["LeaveCode"].ToString() });
            }
            return Json(li, JsonRequestBehavior.AllowGet);
        }

    }