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);
})
有什么想法吗?谢谢!
答案 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);
}
}