MongoDB 正則表達(dá)式

      網(wǎng)友投稿 775 2022-05-29

      正則表達(dá)式是使用單個(gè)字符串來描述、匹配一系列符合某個(gè)句法規(guī)則的字符串。

      許多程序設(shè)計(jì)語言都支持利用正則表達(dá)式進(jìn)行字符串操作。

      MongoDB 使用?$regex?操作符來設(shè)置匹配字符串的正則表達(dá)式。

      MongoDB使用PCRE (Perl Compatible Regular Expression) 作為正則表達(dá)式語言。

      不同于全文檢索,我們使用正則表達(dá)式不需要做任何配置。

      考慮以下?posts?集合的文檔結(jié)構(gòu),該文檔包含了文章內(nèi)容和標(biāo)簽:

      { "post_text": "enjoy the mongodb articles on runoob", "tags": [ "mongodb", "runoob" ] }

      MongoDB 正則表達(dá)式

      使用正則表達(dá)式

      以下命令使用正則表達(dá)式查找包含 runoob 字符串的文章:

      >db.posts.find({post_text:{$regex:"runoob"}})

      以上查詢也可以寫為:

      >db.posts.find({post_text:/runoob/})

      不區(qū)分大小寫的正則表達(dá)式

      如果檢索需要不區(qū)分大小寫,我們可以設(shè)置 $options 為 $i。

      以下命令將查找不區(qū)分大小寫的字符串 runoob:

      >db.posts.find({post_text:{$regex:"runoob",$options:"$i"}})

      集合中會(huì)返回所有包含字符串 runoob 的數(shù)據(jù),且不區(qū)分大小寫:

      { "_id" : ObjectId("53493d37d852429c10000004"), "post_text" : "hey! this is my post on runoob", "tags" : [ "runoob" ] }

      數(shù)組元素使用正則表達(dá)式

      我們還可以在數(shù)組字段中使用正則表達(dá)式來查找內(nèi)容。 這在標(biāo)簽的實(shí)現(xiàn)上非常有用,如果你需要查找包含以 run 開頭的標(biāo)簽數(shù)據(jù)(ru 或 run 或 runoob), 你可以使用以下代碼:

      >db.posts.find({tags:{$regex:"run"}})

      優(yōu)化正則表達(dá)式查詢

      如果你的文檔中字段設(shè)置了索引,那么使用索引相比于正則表達(dá)式匹配查找所有的數(shù)據(jù)查詢速度更快。

      如果正則表達(dá)式是前綴表達(dá)式,所有匹配的數(shù)據(jù)將以指定的前綴字符串為開始。例如: 如果正則表達(dá)式為?^tut?,查詢語句將查找以 tut 為開頭的字符串。

      這里面使用正則表達(dá)式有兩點(diǎn)需要注意:

      正則表達(dá)式中使用變量。一定要使用eval將組合的字符串進(jìn)行轉(zhuǎn)換,不能直接將字符串拼接后傳入給表達(dá)式。否則沒有報(bào)錯(cuò)信息,只是結(jié)果為空!實(shí)例如下:

      var name=eval("/" + 變量值key +"/i");

      以下是模糊查詢包含title關(guān)鍵詞, 且不區(qū)分大小寫:

      title:eval("/"+title+"/i") // 等同于 title:{$regex:title,$Option:"$i"}

      MongoDB 正則表達(dá)式

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:LINUX進(jìn)階(持續(xù)更新)LINUX進(jìn)階(基礎(chǔ)篇)之Linux常用工作命令
      下一篇:Python爬蟲網(wǎng)頁解析神器Xpath快速入門教學(xué)!!!
      相關(guān)文章
      另类小说亚洲色图| 免费亚洲视频在线观看| 毛茸茸bbw亚洲人| 亚洲AV无码乱码在线观看牲色| 亚洲av日韩综合一区久热| 亚洲AV无码片一区二区三区| 亚洲中文字幕久久精品无码VA | 亚洲午夜久久久影院伊人| 亚洲无码高清在线观看| 中文字幕专区在线亚洲| 国产成人亚洲综合| 亚洲午夜国产精品无码老牛影视| 中文字幕无码精品亚洲资源网| 亚洲视频在线一区二区| 亚洲中文字幕无码爆乳av中文| 国产日产亚洲系列最新| 亚洲中文字幕第一页在线| 久久亚洲精品视频| 久久久久亚洲av无码专区 | 亚洲不卡无码av中文字幕| 亚洲国产小视频精品久久久三级| 亚洲高清偷拍一区二区三区| 亚洲性日韩精品国产一区二区| 国产精品亚洲二区在线观看| 亚洲人成亚洲人成在线观看| 亚洲av无码精品网站| 亚洲一区二区三区高清| 亚洲欧洲日产国码www| 亚洲a级在线观看| 亚洲精品无码日韩国产不卡av| 亚洲AV色欲色欲WWW| 亚洲国产精品尤物yw在线| 亚洲尤码不卡AV麻豆| 亚洲av无码无在线观看红杏| 亚洲精品日韩中文字幕久久久| 亚洲国产熟亚洲女视频| 国产精品亚洲精品日韩动图| 中文字幕无码精品亚洲资源网| 亚洲VA中文字幕无码毛片| 亚洲成人免费电影| 亚洲国产精品无码第一区二区三区|