Node.js對MongoDB數(shù)據(jù)庫實(shí)現(xiàn)模糊查詢的方法

前言

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了新化免費(fèi)建站歡迎大家使用!

模糊查詢是數(shù)據(jù)庫的基本操作之一,實(shí)現(xiàn)對給定的字符串是否與指定的模式進(jìn)行匹配。如果字符完全匹配,可以用=等號表示,如果部分匹配可認(rèn)為是一種模糊查詢。在關(guān)系型數(shù)據(jù)中,通過SQL使用like ‘%fens%'的語法。那么在MongoDB中我們應(yīng)該如何實(shí)現(xiàn)模糊查詢的效果呢。

目錄

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

1. mongodb模糊查詢

我們打開mongodb,以name文字字段進(jìn)行測試。

精確查詢

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

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

Node.js對MongoDB數(shù)據(jù)庫實(shí)現(xiàn)模糊查詢的方法

模糊查詢

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

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

Node.js對MongoDB數(shù)據(jù)庫實(shí)現(xiàn)模糊查詢的方法

MongoDB的模糊查詢,其實(shí)是正則查詢的一種。

注:在關(guān)系型數(shù)據(jù)中,單獨(dú)有一個關(guān)鍵字like做模糊查詢,如果不用like,也可以在關(guān)系型數(shù)據(jù)中使用正則查詢。

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的模糊查詢

希望實(shí)現(xiàn)的效果:

Node.js對MongoDB數(shù)據(jù)庫實(shí)現(xiàn)模糊查詢的方法

下面說說如何用mongoose進(jìn)行模糊查詢。

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

我們對Movie建模,并構(gòu)造dao層。

查詢所有電影

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

通過傳入query對象,就可以進(jìn)行查詢。

接下來,構(gòu)造query對象

//代碼片斷
exports.movie = function(req, res) {
 var query={};
 if(req.query.m2) {
 query['name']=new RegExp(req.query.m2);//模糊查詢參數(shù)
 }

 Movie.findByName (query,function(err, list){
 return res.render('admin/movie', {movieList:list});
 });
}

請注意:剛才我們已經(jīng)分析了MongoDB的的模糊查詢是通過正則表達(dá)式實(shí)現(xiàn)的,對應(yīng)mongodb中,可以直接使用 ‘/../' 斜杠。

但是在nodejs中,必須要使用RegExp,來構(gòu)建正則表達(dá)式對象。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對創(chuàng)新互聯(lián)的支持。

文章題目:Node.js對MongoDB數(shù)據(jù)庫實(shí)現(xiàn)模糊查詢的方法
網(wǎng)頁鏈接:http://muchs.cn/article44/ihsohe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、面包屑導(dǎo)航、用戶體驗(yàn)、微信公眾號、網(wǎng)頁設(shè)計公司、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)