我正在尝试从集合字段Property_Address中搜索位置。它包含像SouthEx、新德里这样的值。如果我搜索SouthEx,新德里,印度德里,它将显示包含SouthEx,新德里的结果。我们将如何使用Mongoose搜索来做到这一点?
gv8xihay1#
表格:
<form method="GET"> <input type="text" name="q" id="q"/> </form>
输入文本的Keyup上的AJAX请求
<script> $(document).on('keyup','#q',function(){ if($(this).val()!=='' || $(this).val!=undefined){ var query=$(this).val(); $.ajax({ url:'http://localhost:3000/search?q='+ query, type:'GET', dataType:'json', success:function(response){ console.log(response); if(response.status=='ok'){ console.log(response.search_results); } }, error:function(){ alert('Failed to search address'); } }); } }); </script>
Server.js
app.get('/search',function(req,res) { if(req.query && req.query.q) { var q = req.query.q; YourModel.find({"property_address": new RegExp('^'+q+'$', "i")}, function(err, data) { if(!err && data) { return res.json({status:'ok',search_results:data}); } }); } else { return res.json({status:'error',message:'No input'}); } });
wrrgggsh2#
这应该是您的查询:
await YourModel.find({ "property_address": new RegExp(req.query.q) })
但它只能在字符串值中找到,所以不要在数值上尝试它,因为它不起作用:)我不知道也许应该有更高的表现方式,如果你找到了更高的表现方式,请评论并让我知道,谢谢。
2条答案
按热度按时间gv8xihay1#
表格:
输入文本的Keyup上的AJAX请求
Server.js
wrrgggsh2#
这应该是您的查询:
但它只能在字符串值中找到,所以不要在数值上尝试它,因为它不起作用:)
我不知道也许应该有更高的表现方式,如果你找到了更高的表现方式,请评论并让我知道,谢谢。