node . js对MongoDB数据库实现模糊查询的方法

  

  

模糊查询是数据库的基本操作之一,实现对给定的字符串是否与指定的模式进行匹配。如果字符完全匹配,可以用=等号表示,如果部分匹配可认为是一种模糊查询。在关系型数据中,通过SQL使用像“%沼泽%”的语法。那么在mongodb中我们应该如何实现模糊查询的效果呢。

  

  
      <李> mongodb模糊查询李   <李> nodejs通过猫鼬的模糊查询
      李   
  

  

我们打开mongodb,以名文字字段进行测试。

  

<>强精确查询
  

  

当{“名称”:“未来警察”}时,精确匹配到一条记录。

        db.movies.find({“名称”:“未来警察'})      

 node . js对MongoDB数据库实现模糊查询的方法

  

<强>模糊查询
  

  

{“名称”:/未来/},匹配到了多条记录。

        db.movies.find({“名称”:/未来/})      

 node . js对MongoDB数据库实现模糊查询的方法

  

MongoDB的模糊查询,其实是正则查询的一种。
  

  

注:在关系型数据中,单独有一个关键字像做模糊查询,如果不用,也可以在关系型数据中使用正则查询。

  

MongoDB官方介绍:http://docs.mongodb.org/manual/reference/operator/regex/

  

<强>官方举例:
  

        db.collection。找到({字段:/acme。*公司/我});   db.collection。找到({:{$正则表达式:“极致。*集团”,选择美元:‘我’}});      

  

希望实现的效果:
  

  

 node . js对MongoDB数据库实现模糊查询的方法

  

<强>下面说说如何用猫鼬进行模糊查询。

  

使用猫鼬访问mongodb,在,利用猫鼬让JSON数据直接插入或更新到mongodb一文中已经讲过。

  

我们对电影建模,并构造dao层。

  

<强>查询所有电影

        MovieDAO.prototype。findByName=函数(查询、回调){   电影。findOne(查询功能(呃,obj) {   回调(呃,obj);   });   };      

通过传入查询对象,就可以进行查询。

  

接下来,构造查询对象

     //代码片断   出口。电影=function(点播,res) {   var查询={};   如果(req.query.m2) {   查询['名称')=new RegExp (req.query.m2);//模糊查询参数   }      电影。findByName(查询、功能(呃,列表){   返回res.render (admin/电影,{movieList:列出});   });   }      

刚才我们已经分析了MongoDB的的模糊查询是通过正则表达式实现的,对应MongoDB中,可以直接使用的/. ./'斜杠。
  

  

但是在nodejs中,必须要使用正则表达式,来构建正则表达式对象。

  

  

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

node . js对MongoDB数据库实现模糊查询的方法