欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2017年05月03日 10:00:45   作者:Conan  
模糊查詢是數(shù)據(jù)庫的基本操作之一,下面這篇文章主要給大家介紹了利用Node.js對MongoDB數(shù)據(jù)庫實現(xiàn)模糊查詢的方法教程,文中給出了詳細(xì)的介紹和示例代碼,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。

前言

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

目錄

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

1. mongodb模糊查詢

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

精確查詢

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

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

模糊查詢

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

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

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

注:在關(guān)系型數(shù)據(jù)中,單獨有一個關(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的模糊查詢

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

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

使用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對象,就可以進行查詢。

接下來,構(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á)式實現(xiàn)的,對應(yīng)mongodb中,可以直接使用 ‘/../' 斜杠。

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

總結(jié)

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

相關(guān)文章

  • 解決npm管理員身份install時出現(xiàn)權(quán)限的問題

    解決npm管理員身份install時出現(xiàn)權(quán)限的問題

    下面小編就為大家分享一篇解決npm管理員身份install時出現(xiàn)權(quán)限的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • node.js制作一個簡單的登錄攔截器

    node.js制作一個簡單的登錄攔截器

    本文給大家分享的是使用node.js制作一個簡單的登錄攔截的思路及代碼,有需要的小伙伴可以參考下
    2020-02-02
  • npm出現(xiàn)Cannot?find?module?'XXX\node_modules\npm\bin\npm-cli.js'錯誤的解決方法

    npm出現(xiàn)Cannot?find?module?'XXX\node_modules\npm\bin\np

    最近在啟動項目的時候會報這個錯就是npm丟失,所以下面這篇文章主要給大家介紹了關(guān)于npm出現(xiàn)Cannot?find?module?'XXX\node_modules\npm\bin\npm-cli.js'錯誤的解決方法,需要的朋友可以參考下
    2022-08-08
  • Node.js深入分析Koa源碼

    Node.js深入分析Koa源碼

    本文主要從源碼的角度來講述 Koa,尤其是其中間件系統(tǒng)是如何實現(xiàn)的。跟 Express 相比,Koa 的源碼異常簡潔,Express 因為把路由相關(guān)的代碼嵌入到了主要邏輯中,因此讀 Express 的源碼可能長時間不得要領(lǐng),而直接讀 Koa 的源碼幾乎沒有什么障礙
    2022-08-08
  • node.js操作MongoDB的實例詳解

    node.js操作MongoDB的實例詳解

    這篇文章主要介紹了node.js操作MongoDB的實例詳解的相關(guān)資料,希望通過本能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • node省市區(qū)三級數(shù)據(jù)性能測評實例分析

    node省市區(qū)三級數(shù)據(jù)性能測評實例分析

    這篇文章主要介紹了node省市區(qū)三級數(shù)據(jù)性能,結(jié)合具體實例形式評測分析了node省市區(qū)三級數(shù)據(jù)的實現(xiàn)、改進方法與運行效率,需要的朋友可以參考下
    2019-11-11
  • NodeJS 文件夾拷貝以及刪除功能

    NodeJS 文件夾拷貝以及刪除功能

    這篇文章主要介紹了NodeJS 文件夾拷貝以及刪除功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • node Buffer緩存區(qū)常見操作示例

    node Buffer緩存區(qū)常見操作示例

    這篇文章主要介紹了node Buffer緩存區(qū)常見操作,涉及node.js操作Buffer緩存的創(chuàng)建、寫入、讀取、轉(zhuǎn)換等相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-05-05
  • Node.js中的http請求客戶端示例(request client)

    Node.js中的http請求客戶端示例(request client)

    本篇文章主要介紹了Node.js中的http請求客戶端示例(request client),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • node使用Mongoose類庫實現(xiàn)簡單的增刪改查

    node使用Mongoose類庫實現(xiàn)簡單的增刪改查

    Mongoose是在nodejs環(huán)境中對MongoDB數(shù)據(jù)庫操作的封裝,這篇文章主要介紹了node使用Mongoose類庫實現(xiàn)簡單的增刪改查,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11

最新評論