婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MongoDB正則表達式及應用

MongoDB正則表達式及應用

熱門標簽:線上教育ai外呼系統 鄂州人工智能電銷機器人軟件 菏澤智能ai電銷機器人銷售公司 宿遷智能外呼系統供應商 css百度地圖標注位置顯示 地圖標注字母的軟件 實用地圖標注app 地圖標注商戶中心要收錢多少 400免費電話去哪申請

正則表達式常用來在所有語言中搜索字符串的任何模式或文字。MongoDB還提供了正則表達式功能的字符串模式使用正則表達式$regex操作符。MongoDB使用PCRE(Perl兼容正則表達式)為正則表達式語言。

不同于文本搜索,我們不需要做任何配置或命令就能直接使用正則表達式。

考慮下包含文字后其標簽的帖子集合,文檔結構如以下:

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

使用正則表達式表達

下面的正則表達式查詢搜索所有包含字符串 yiibai.com 的帖子:

復制代碼 代碼如下:

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

同樣的查詢也可以寫為:

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

使用正則表達式不區分大小寫

為了使搜索不區分大小寫,我們使用$options 帶有值參數 $i。下面的命令會搜索字符串:yiibai.com,不論大小寫:

復制代碼 代碼如下:

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

該查詢重新調整的結果是:其中在大小下包含詞語 yiibai 文檔,如以下:

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

使用正則表達式的數組元素:

我們還可以使用數組字段正則表達式概念。 這時候我們實現標簽的功能顯得尤為重要。 所以,如果想要搜索帶有標簽以詞組tutorial開始所有的帖子(無論是tutorial或tutorials或tutorialjava或tutorialphp),都可以使用下面的代碼:

復制代碼 代碼如下:

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

優化正則表達式查詢:

如果文檔字段已被索引,查詢將使用使用索引值的匹配正則表達式。 這使得搜索非常快,正則表達式相對于掃描整個集合。

如果正則表達式是一個前綴表達式,所有的匹配是以某一串字符開始。例如,如果正則表達式 ^tut, 查詢有只搜索那些開始串 tut.

mongodb正則表達式應用

mongodb中完全支持正則表達式,一般查詢中可以使用操作符$regex

db.lnmopy.find( { 'name': /*.lnmopy.com/i } )
db.lnmopy.find( { 'name': { $regex: '*.lnmopy.com', $options: 'i' } } )

以上兩種完全等價,可以直接對域(field)即上例中的'name'鍵,使用正則表達式或者使用操作符,可選項目是i,即忽略大小寫。
關于正則可選項,mongodb和其他語言標準正則稍有不同,有自己的標準。

$options的可選值

i 忽略大小寫;

m 多行查找,如果內容里面不存在換行符號(例如 \n)或者構造上沒有(start/end),該選項沒有任何效果;
x 空白字符除了被轉義的或在字符類中的以外完全被忽略,在未轉義的字符類之外的 # 以及下一個換行符之間的所有字符,包括兩頭,也都被忽略;

s 圓點元字符(.)匹配所有的字符,包括換行符

假設我們有一個數據庫名為mongoDemo

use mongoDemo

數據庫中有個集合名為lnmopy

db.lnmopy.find()

有如下數據:

{ "_id" : ObjectId("502dd63d16a25b1ff6000000"), "name" : "www.lnmopy.com", "site" : "website", "tag" : "l,n,m,o,p,y"}
{ "_id" : ObjectId("502dd63d16a25b1ff6000000"), "name" : "demo.lnmopy.com", "site" : "unknown", "tag" : "d,e,m,o"}
{ "_id" : ObjectId("502dd63d16a25b1ff6000000"), "name" : "welcome.lnmopy.com", "site" : "website", "tag" : "w,e,l,c,o,m,e"}

mongodb的正則表達式僅支持i和m的javascript原生寫法(如/*.lnmopy.com/i)。如果要是用x和s選項就必須使用“$regex”操作符并在“$options”中指定選項。

使用正則表達式的更新操作:

db.lnmopy.update( { 'name': /*.lnmopy.com/i }, { $set: { 'site':'www.lnmopy.com' } } );

意思是,查找當前數據庫中名為“lnmopy”的集合中“name”字段符合“/*.lnmopy.com/i”正則的條目,并只將“site”字段更新為“www.lnmopy.com”,該條更新語句僅更新一條數據,如果不是用$set,那么這條記錄就會只剩下你更新的部分和默認的ObjectId,可以說是替換了。如果想替換所有,可以加入參數:

db.lnmopy.update( { 'name': /*.lnmopy.com/i }, { $set: { 'site':'www.lnmopy.com' } } , false, true);

參數有順序,false是upsert,如果沒有就插入新的。true就是multi多條記錄更新,所有匹配到的結果。或者直接指定{ multi: true }:
db.lnmopy.update( { 'name': /*.lnmopy.com/i }, { $set: { 'site':'www.lnmopy.com' } } , { multi: true });
這樣就把所有的“site”字段全都更新為“www.lnmopy.com”了。

我設計的字段“tag”有個缺陷,就是本來是一個單詞,現在每個字母都被“,“分隔開了。實際工作中也存在類似問題,由于批量轉換數據,或者其他程序操作不當,或者業務需求更改等等原因需要對某些字段進行正則批量處理,mongodb的一般更新方法是不能實現的,這時就需要使用javascript語句。

正則表達式替換查詢結果中','為”

db.lnmopy.find().forEach( function(u) { u.tag = u.tag.replace(/\,/, ""); db.lnmopy.save(u); } );

最后執行

db.lnmopy.find()

顯示如下數據:

{ "_id" : ObjectId("502dd63d16a25b1ff6000000"), "name" : "www.lnmopy.com", "site" : "www.lnmopy.com", "tag" : "lnmopy"}
{ "_id" : ObjectId("502dd63d16a25b1ff6000000"), "name" : "demo.lnmopy.com", "site" : "www.lnmopy.com", "tag" : "demo"}
{ "_id" : ObjectId("502dd63d16a25b1ff6000000"), "name" : "welcome.lnmopy.com", "site" : "www.lnmopy.com", "tag" : "welcome"}

后記:javascript是mongodb的一大特色,也是優勢,很多復雜的查詢和處理都可以用javascript實現,要注意的是,javascript的工作效率較低,原則上應該盡量避免在主要業務邏輯中大量使用。類比的講,javascript就相當于oracle的存儲過程,介于10gen(mongodb的開發團隊)是由oracle出來的這點,就一點也不奇怪了。關于如何使用更復雜的javascript,以后會寫到。

您可能感興趣的文章:
  • Thinkphp使用mongodb數據庫實現多條件查詢方法
  • MongoDB多條件模糊查詢示例代碼
  • 淺談java實現mongoDB的多條件查詢
  • .Net Core如何對MongoDB執行多條件查詢
  • MongoDB查詢之高級操作詳解(多條件查詢、正則匹配查詢等)

標簽:梅州 綿陽 三亞 六安 池州 鞍山 恩施 咸陽

巨人網絡通訊聲明:本文標題《MongoDB正則表達式及應用》,本文關鍵詞  MongoDB,正則,表達式,及,應用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB正則表達式及應用》相關的同類信息!
  • 本頁收集關于MongoDB正則表達式及應用的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩av一区二| 黄色小说综合网站| 久久久久九九视频| 日韩欧美中文字幕一区| 欧美日韩小视频| 欧美日韩在线免费视频| 色一区在线观看| 日韩国产一二三区| 国产一区福利在线| 久久精品国产亚洲一区二区三区| 亚洲观看高清完整版在线观看| 亚洲精品欧美激情| 亚洲成年人网站在线观看| 一级精品视频在线观看宜春院| 亚洲欧美区自拍先锋| 一区二区免费看| 亚洲国产美女搞黄色| 国内成人免费视频| 久久蜜臀精品av| 国产亚洲福利社区一区| 中文字幕欧美激情一区| 亚洲欧洲国产日韩| 亚洲6080在线| 成人性色生活片| 欧美亚洲国产一区在线观看网站| 欧美日本一区二区三区| 26uuu亚洲综合色| 一区二区三区在线观看视频| 亚洲成人av资源| 豆国产96在线|亚洲| 91成人免费在线| 日韩欧美你懂的| 日韩毛片在线免费观看| 亚洲成av人片一区二区| 国内一区二区在线| 在线观看亚洲专区| 久久久久久久久久久久久久久99| 亚洲欧美一区二区三区国产精品 | 欧美影院一区二区| 欧美va亚洲va香蕉在线| 国产精品大尺度| 久久99精品视频| 欧日韩精品视频| 国产精品色婷婷久久58| 蜜桃av一区二区三区电影| 91小视频在线观看| 久久嫩草精品久久久久| 日日摸夜夜添夜夜添国产精品| 成人污污视频在线观看| 欧美一区二区三区在线观看视频 | 欧美综合亚洲图片综合区| 精品国产一区二区三区av性色| 亚洲精品成人悠悠色影视| 精品综合免费视频观看| 中国色在线观看另类| 免费观看在线综合色| 日本韩国欧美在线| 国产精品传媒入口麻豆| 国产精品一区二区在线观看网站 | 欧美性色黄大片| 国产精品国产三级国产aⅴ入口| 激情综合色综合久久| 7777精品伊人久久久大香线蕉经典版下载 | 免费成人结看片| 欧美亚洲一区二区在线观看| 国产精品欧美一区二区三区| 久久99最新地址| 欧美成人精品高清在线播放| 蜜臀91精品一区二区三区| 欧美日韩在线免费视频| 一级特黄大欧美久久久| 91色porny| 国产精品色噜噜| 成人黄色网址在线观看| 国产视频一区在线播放| 久久er99热精品一区二区| 日韩一卡二卡三卡四卡| 日本在线不卡视频一二三区| 欧美日韩一区二区不卡| 亚洲一区二区三区四区在线观看 | 日韩制服丝袜先锋影音| 欧美精品亚洲一区二区在线播放| 水野朝阳av一区二区三区| 欧美日韩在线不卡| 日本欧美在线看| 日韩欧美一区二区在线视频| 激情伊人五月天久久综合| 久久久久国产精品人| 国产精品小仙女| 亚洲女人小视频在线观看| 欧美色视频在线| 精品一区二区在线免费观看| 中文一区在线播放| 在线观看成人小视频| 青青草原综合久久大伊人精品优势| 日韩午夜激情视频| 懂色av噜噜一区二区三区av| 亚洲黄色小说网站| 欧美一级电影网站| 成人国产精品视频| 五月天激情小说综合| 久久久精品日韩欧美| 91丨九色丨蝌蚪富婆spa| 偷拍自拍另类欧美| 久久精品欧美一区二区三区麻豆| 91亚洲精华国产精华精华液| 日日夜夜精品视频免费| 国产欧美视频一区二区三区| 欧美日精品一区视频| 国产麻豆视频精品| 亚洲h动漫在线| 国产精品网站导航| 日韩一区二区三区免费看 | 国内精品久久久久影院薰衣草| 国产精品成人免费在线| 91精品在线观看入口| 成人v精品蜜桃久久一区| 亚洲高清中文字幕| 久久蜜桃一区二区| 欧美在线一区二区| 处破女av一区二区| 亚洲大片免费看| 中文字幕av在线一区二区三区| 6080日韩午夜伦伦午夜伦| 97久久超碰国产精品| 精品在线播放午夜| 天天av天天翘天天综合网色鬼国产 | 成人动漫中文字幕| 麻豆精品在线观看| 日韩福利电影在线| 一级特黄大欧美久久久| 国产精品毛片高清在线完整版| 欧美mv日韩mv亚洲| 欧美大胆人体bbbb| 欧美久久一区二区| 在线电影院国产精品| 色婷婷综合久久久中文一区二区| 国产69精品久久久久毛片| 韩日av一区二区| 国产在线精品一区二区| 日本中文字幕一区二区有限公司| 亚洲r级在线视频| 亚洲一区影音先锋| 亚洲成人激情av| 日韩电影网1区2区| 男女激情视频一区| 精品无人区卡一卡二卡三乱码免费卡 | 老司机午夜精品99久久| 亚洲午夜av在线| 亚洲精品国产视频| 亚洲成人第一页| 久久精品99国产国产精| 日韩av电影免费观看高清完整版在线观看| 亚洲最大的成人av| 青青草国产精品亚洲专区无| 久久国产精品露脸对白| 韩国在线一区二区| 成人av电影在线播放| 波多野结衣亚洲| 色噜噜久久综合| 欧美一区二区视频在线观看2020| 欧美一区二区成人| 久久久影院官网| 亚洲婷婷综合久久一本伊一区| 亚洲综合免费观看高清完整版 | 国产成人免费高清| 国产成人在线看| a级精品国产片在线观看| 99久久99久久精品国产片果冻| 91福利精品第一导航| 欧美精品久久一区二区三区| 日韩视频永久免费| 国产精品日产欧美久久久久| 一个色在线综合| 精品在线一区二区三区| 成人97人人超碰人人99| 欧美日本一区二区| 国产三级欧美三级日产三级99| 亚洲日韩欧美一区二区在线| 亚洲国产va精品久久久不卡综合| 国产一区二区在线免费观看| 99re这里都是精品| 91精品婷婷国产综合久久性色| 国产片一区二区三区| 亚洲123区在线观看| 国产麻豆欧美日韩一区| 欧美三级一区二区| 欧美激情在线一区二区三区| 亚洲bt欧美bt精品| 不卡一区二区三区四区| 日韩欧美一区二区不卡| 亚洲视频一二三区| 国产一区二区三区四| 99国产精品久| 国产欧美日韩综合精品一区二区| 天天色图综合网| 日本韩国欧美国产| 国产精品视频一二三区| 欧美a级理论片| 欧美日韩精品一区二区三区蜜桃|