Mongoose 部分搜索

noj0wjuj  于 2022-10-22  发布在  Go
关注(0)|答案(2)|浏览(191)

我正在尝试从集合字段Property_Address中搜索位置。它包含像SouthEx、新德里这样的值。如果我搜索SouthEx,新德里,印度德里,它将显示包含SouthEx,新德里的结果。
我们将如何使用Mongoose搜索来做到这一点?

gv8xihay

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'});
}
});
wrrgggsh

wrrgggsh2#

这应该是您的查询:

await YourModel.find({ "property_address": new RegExp(req.query.q) })

但它只能在字符串值中找到,所以不要在数值上尝试它,因为它不起作用:)
我不知道也许应该有更高的表现方式,如果你找到了更高的表现方式,请评论并让我知道,谢谢。

相关问题