国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Node.js對MongoDB數據庫實現模糊查詢的方法

2019-11-19 16:40:31
字體:
來源:轉載
供稿:網友

前言

模糊查詢是數據庫的基本操作之一,實現對給定的字符串是否與指定的模式進行匹配。如果字符完全匹配,可以用=等號表示,如果部分匹配可認為是一種模糊查詢。在關系型數據中,通過SQL使用like ‘%fens%'的語法。那么在mongodb中我們應該如何實現模糊查詢的效果呢。

目錄

  • mongodb模糊查詢
  • nodejs通過mongoose的模糊查詢

1. mongodb模糊查詢

我們打開mongodb,以name文字字段進行測試。

精確查詢

當{‘name':'未來警察'}時,精確匹配到一條記錄。

db.movies.find({'name':'未來警察'})

模糊查詢

{‘name':/未來/},匹配到了多條記錄。

db.movies.find({'name':/未來/})

MongoDB的模糊查詢,其實是正則查詢的一種。

注:在關系型數據中,單獨有一個關鍵字like做模糊查詢,如果不用like,也可以在關系型數據中使用正則查詢。

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

官方舉例:

db.collection.find( { field: /acme.*corp/i } );db.collection.find( { field: { $regex: 'acme.*corp', $options: 'i' } } );

2. nodejs通過mongoose的模糊查詢

希望實現的效果:

下面說說如何用mongoose進行模糊查詢。

使用mongoose訪問mongodb,在 利用Mongoose讓JSON數據直接插入或更新到MongoDB 一文中已經講過。

我們對Movie建模,并構造dao層。

查詢所有電影

MovieDAO.prototype.findByName = function(query, callback) { Movie.findOne(query, function(err, obj){ callback(err, obj); });};

通過傳入query對象,就可以進行查詢。

接下來,構造query對象

//代碼片斷exports.movie = function(req, res) { var query={}; if(req.query.m2) { query['name']=new RegExp(req.query.m2);//模糊查詢參數 } Movie.findByName (query,function(err, list){ return res.render('admin/movie', {movieList:list}); });}

請注意:剛才我們已經分析了MongoDB的的模糊查詢是通過正則表達式實現的,對應mongodb中,可以直接使用 ‘/../' 斜杠。

但是在nodejs中,必須要使用RegExp,來構建正則表達式對象。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 瑞丽市| 师宗县| 保康县| 宁德市| 浦北县| 临武县| 竹山县| 吉安市| 乌鲁木齐县| 巴彦淖尔市| 于都县| 宜兰市| 双城市| 华容县| 康定县| 区。| 微山县| 陇川县| 三门峡市| 蒙自县| 桑植县| 东港市| 凤山市| 葫芦岛市| 台南市| 余庆县| 界首市| 南投县| 浙江省| 双流县| 和政县| 邯郸市| 朝阳市| 余姚市| 外汇| 莱芜市| 高邑县| 巍山| 施甸县| 新巴尔虎右旗| 松滋市|