麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MongoDB > 正文

MongoDB正則表達式及應用

2020-03-22 17:10:06
字體:
來源:轉載
供稿:網友
html' target='_blank'>正則表達式常用來在所有語言中搜索字符串的任何模式或文字。MongoDB還提供了正則表達式功能的字符串模式使用正則表達式$regex操作符。MongoDB使用PCRE(Perl兼容正則表達式)為正則表達式語言。不同于文本搜索,我們不需要做任何配置或命令就能直接使用正則表達式。考慮下包含文字后其標簽的帖子集合,文檔結構如以下: "post_text": "enjoy the mongodb articles on yiibai", "tags": [ "mongodb", "yiibai"使用正則表達式表達下面的正則表達式查詢搜索所有包含字符串 yiibai.com 的帖子: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,以后會寫到。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: a网在线| 午夜精品福利影院 | 美女黄色影院 | 国产免费小视频在线观看 | 一级黄片毛片免费看 | 亚洲成人激情在线 | 男女羞羞视频在线免费观看 | 国产日产精品久久久久快鸭 | 九九热精品视频在线播放 | 欧美女优一区 | 午夜神马电影网 | 日本黄色一级视频 | 宅男噜噜噜66国产免费观看 | 亚洲一区在线免费视频 | 国产精品视频在线观看免费 | 成人在线免费视频观看 | 九九热精品视频在线 | 一级视频在线播放 | 国产一区二区精品在线观看 | 免费一级毛片网站 | 蜜桃一本色道久久综合亚洲精品冫 | 美女羞羞视频在线观看 | 国产精品久久久久久久不卡 | 欧美在线观看黄色 | 国产亚洲精品成人 | 国产亚洲黑人性受xxxx精品 | 91色一区二区三区 | 一级黄色毛片a | 精品在线视频观看 | 午夜视频在线免费观看 | 激情视频免费观看 | 毛片在线视频在线播放 | 日韩精品中文字幕一区二区三区 | 欧美日韩在线视频一区 | 亚洲一区二区免费视频 | 一级看片免费视频 | 竹内纱里奈和大战黑人 | 黄色成人短视频 | 国产羞羞视频在线观看免费应用 | 美国黄色毛片女人性生活片 | 国产免费成人 |