亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MongoDB > 正文

MongoDB中數據的替換方法實現類Replace()函數功能詳解

2020-10-29 18:40:44
字體:
來源:轉載
供稿:網友

近日接到一個開發需求,因業務調整,需要DBA協助,將MongoDB數據庫中某集合的進行替換。例如我們需要將集合A中B字段中,有關《美好》的字符替換為 《非常美好》。個人感覺這個需求如果是在SQL Server 或MySQL 數據庫上處理是小菜一碟,如果是針對MongoDB數據,可能要費神了。

1.常見關系數據數據庫中的替換函數

在SQL Server數據庫中,我們用Replace函數來實現字符的替換。

語法

REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' )

參數

''string_replace1''

待搜索的字符串表達式。string_replace1 可以是字符數據或二進制數據。

''string_replace2''

待查找的字符串表達式。string_replace2 可以是字符數據或二進制數據。

''string_replace3''

替換用的字符串表達式。string_replace3 可以是字符數據或二進制數據。

 例如將 字符串 SQL Server 數據庫 中的  SQL Server 替換為 MongoDB。

實現語句如下:

在MySQL數據庫中語法類似。

2.在MongoDB中實現替換方法

很可惜,到目前為止還沒有找到類似SQL Server的替換函數,那么我們怎么去實現文檔中的數據替換呢?特別是集合中的文檔數量比較大時。

假設現在有用戶信息文檔,如下。注意其中有聯系地址。

{  "_id" : ObjectId("5c77e5f85f53771b74bc87e0"),  "username" : "hanmeimei",  "email" : "123456@126.com",  "tel" : 7891233,  "addresses" : {    "provice" : "山東省",    "city" : "菏澤市鄄城縣曹集鎮",    "stree" : "武狀元街道28號"  }},/* 2 createdAt:2019/2/28 下午9:45:28*/{  "_id" : ObjectId("5c77e5f85f53771b74bc87df"),  "username" : "Lily",  "email" : "123456@126.com",  "tel" : 123455,  "addresses" : [    {      "provice" : "河南省",      "city" : "鄭州市登封縣李集鎮",      "stree" : "少林街道28號"    }  ]},/* 3 createdAt:2019/2/28 下午9:45:28*/{  "_id" : ObjectId("5c77e5f85f53771b74bc87de"),  "username" : "Lily",  "email" : "123456@126.com",  "tel" : 123455,  "addresses" : {    "provice" : "山東省",    "city" : "菏澤市定陶縣曹集鎮",    "stree" : "武狀元街道28號"  }},/* 4 createdAt:2019/2/28 下午9:45:28*/{  "_id" : ObjectId("5c77e5f85f53771b74bc87dd"),  "username" : "jack",  "email" : "123456@126.com",  "tel" : 123455,  "addresses" : {    "provice" : "山東省",    "city" : "菏澤市定陶縣",    "stree" : "武狀元街道28號"  }}

現在因為行政區域劃分,將 菏澤市定陶縣劃為定陶縣區。那么怎么進行批量修改呢? MongoDB中沒有Replace。

Update,也不好寫代碼。

最終.......我們還是找到了一個方法。

大家是先看看執行的代碼及實現的結果。

 db.user.find({'addresses.city':{'$regex': /菏澤市定陶縣/ }}).forEach(   function(item) {    var tmp = String(item.addresses.city)    tmp = tmp.replace('菏澤市定陶縣','菏澤市定陶縣區')    if (tmp == null){      print(item.addresses.city)      }     item.addresses.city = tmp ;         db.user.save(item);  }  );

  

 

執行后,再次查看數據,結果如下:

/* 1 createdAt:2019/2/28 下午9:45:28*/{  "_id" : ObjectId("5c77e5f85f53771b74bc87e0"),  "username" : "hanmeimei",  "email" : "123456@126.com",  "tel" : 7891233,  "addresses" : {    "provice" : "山東省",    "city" : "菏澤市鄄城縣曹集鎮",    "stree" : "武狀元街道28號"  }},/* 2 createdAt:2019/2/28 下午9:45:28*/{  "_id" : ObjectId("5c77e5f85f53771b74bc87df"),  "username" : "Lily",  "email" : "123456@126.com",  "tel" : 123455,  "addresses" : [    {      "provice" : "河南省",      "city" : "鄭州市登封縣李集鎮",      "stree" : "少林街道28號"    }  ]},/* 3 createdAt:2019/2/28 下午9:45:28*/{  "_id" : ObjectId("5c77e5f85f53771b74bc87de"),  "username" : "Lily",  "email" : "123456@126.com",  "tel" : 123455,  "addresses" : {    "provice" : "山東省",    "city" : "菏澤市定陶縣區曹集鎮",    "stree" : "武狀元街道28號"  }},/* 4 createdAt:2019/2/28 下午9:45:28*/{  "_id" : ObjectId("5c77e5f85f53771b74bc87dd"),  "username" : "jack",  "email" : "123456@126.com",  "tel" : 123455,  "addresses" : {    "provice" : "山東省",    "city" : "菏澤市定陶縣區",    "stree" : "武狀元街道28號"  }}

集合文檔中addresses.city中的'菏澤市定陶縣' 全部被 '菏澤市定陶縣區' 替換,符合設計要求。

3.知識補充與回顧

(1)作為一個數據庫,MongoDB有一個很大的優勢―它使用js管理數據庫,所以也能夠使用js腳本進行復雜的管理。MongoDB自帶JavaScript shell,可在shell中使用命令行與MongoDB進行交互。shell是一個功能完備的JavaScript解釋器,可運行任意JavaScript程序。

mongodb 的shell是javascript實現的,如果直接使用js實現相應的功能則顯得很直觀和簡便。比如我們對一些數據進行 統計計算,除了使用mapreduce和aggreate框架之外,直接使用js也是很好的選擇。還有一些批處理,數據同步都可以使用js

例如將集合中所有的文檔,打印出來--  db.collectionname.find().forEach(printjson)。

注意:在上面演示的MongoDB替換字符的腳本,都在mongodb shell 和 nosqlbooster 工具里面驗證過,沒有問題。但是相同的代碼在mongodb shell中要注意格式要求,最好要符合Javascript 格式要求,否則,可能報錯,如:E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:138

(2)forEach:MongoDB數據庫使用游標返回find的執行結果??蛻舳藢τ螛说膶崿F通常能夠對最終結果進行有效的控制??梢韵拗平Y果的數量,略過部分結果,根據任意鍵按任意順序的組合對結果進行各種排序,或者是執行其他一些強大的操作。游標有一個重要的迭代函數---cursor.forEach(回調函數),允許我們自定義回調函數來逐個處理每個單元.

(3)$regex :正則表達式是使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。MongoDB 使用 $regex 操作符來設置匹配字符串的正則表達式。

更多關于MongoDB中數據的替換方法實現的方法請查看下面的相關鏈接

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美小视频在线| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲欧美日韩精品久久| 中文字幕av一区二区| 自拍偷拍免费精品| 亚洲欧美日韩视频一区| 亚洲最大av在线| 国产中文字幕91| 亚洲视频999| 亚洲精品电影网站| 国产欧美日韩精品在线观看| 日韩的一区二区| 久久影院资源网| 亚洲一区二区三区成人在线视频精品| 欧美第一黄网免费网站| 中日韩美女免费视频网址在线观看| 在线视频亚洲欧美| 欧美性xxxxx| 欧美在线观看一区二区三区| 91久久精品在线| 欧美日韩午夜视频在线观看| 欧美午夜影院在线视频| 亚洲成人教育av| 黄色精品一区二区| 亚洲夜晚福利在线观看| 亚洲人高潮女人毛茸茸| 日韩激情av在线免费观看| 国产日韩在线免费| 国模私拍一区二区三区| 一区二区欧美日韩视频| 日韩精品免费在线视频| 欧美日韩另类字幕中文| 欧美极品少妇与黑人| 97精品欧美一区二区三区| 久久久女女女女999久久| 欧美情侣性视频| 日韩中文字在线| 欧美日韩中文字幕在线| 51色欧美片视频在线观看| 久久免费观看视频| 亚洲国产精品国自产拍av秋霞| 一本一本久久a久久精品牛牛影视| 亚洲欧洲美洲在线综合| 亚洲aaa激情| 永久免费毛片在线播放不卡| 国产中文日韩欧美| 成人一区二区电影| 国产男人精品视频| 日韩av中文字幕在线免费观看| 亚洲国产日韩欧美在线动漫| 一本久久综合亚洲鲁鲁| 亚洲免费福利视频| 日韩精品有码在线观看| 4438全国亚洲精品在线观看视频| 色综合色综合久久综合频道88| 欧美日在线观看| 在线观看国产精品淫| 色综合久久中文字幕综合网小说| 正在播放国产一区| 精品久久久999| 国产精品国产福利国产秒拍| 久久激情视频久久| 国产一区二区动漫| 国产精品久久久久久久久男| 国产美女91呻吟求| 成人免费福利视频| 精品福利在线视频| 国产欧美精品日韩| 成人激情视频在线播放| 欧美综合国产精品久久丁香| 免费91在线视频| 亚洲乱码一区av黑人高潮| 久久综合伊人77777蜜臀| 欧美理论电影网| 色偷偷噜噜噜亚洲男人的天堂| 国产欧美精品一区二区| 亚洲自拍小视频| 久久国产精品久久久| 精品福利在线视频| 色系列之999| 国产美女精品免费电影| 国产精品扒开腿做爽爽爽视频| www.日韩不卡电影av| 搡老女人一区二区三区视频tv| 国产精品中文字幕在线| 成人免费自拍视频| 国产女人18毛片水18精品| 久久五月天综合| 国产精品精品一区二区三区午夜版| 精品无码久久久久久国产| 欧美精品18videosex性欧美| 欧美电影免费观看高清| 国产精自产拍久久久久久蜜| 亚州精品天堂中文字幕| 日韩中文字幕在线免费观看| 欧美电影免费看| 国产欧美日韩精品丝袜高跟鞋| 日韩中文字幕av| 91国内在线视频| 操91在线视频| 亚洲视频国产视频| 国产综合色香蕉精品| 欧美激情一二区| 中文字幕久热精品视频在线| 国语自产精品视频在线看抢先版图片| 这里只有精品视频在线| 久久亚洲综合国产精品99麻豆精品福利| 国产精品99蜜臀久久不卡二区| 秋霞成人午夜鲁丝一区二区三区| 97精品免费视频| 热久久美女精品天天吊色| 亚洲视频网站在线观看| 亚洲免费视频网站| 亚洲精品日韩欧美| 欧美三级欧美成人高清www| 激情久久av一区av二区av三区| 久久久精品在线观看| 日韩精品视频观看| 精品视频久久久| 亚洲第一福利网| 亚洲欧美www| 国产精品成人免费电影| 国产不卡av在线免费观看| 亚洲福利视频久久| 国产欧美久久一区二区| 91精品国产综合久久男男| 精品人伦一区二区三区蜜桃网站| 97av视频在线| 91精品国产沙发| 久久久国产在线视频| 亚洲美女视频网站| 91久久精品国产91性色| 欧美老女人性生活| 大伊人狠狠躁夜夜躁av一区| 日本精品久久中文字幕佐佐木| 国产欧美日韩中文| 国产精品高潮呻吟久久av黑人| 亚洲精品中文字| 国产日韩在线看片| 久久久久北条麻妃免费看| 久久精品夜夜夜夜夜久久| 精品久久久久久久久久久久久| 色婷婷综合成人av| 国产精品视频男人的天堂| 色综合天天狠天天透天天伊人| 亚洲精品视频网上网址在线观看| 欧美日韩不卡合集视频| 日韩中文字幕在线| 日韩高清电影免费观看完整| 欧美日韩综合视频网址| 中文字幕日韩高清| 亚洲欧美综合区自拍另类| 亚洲国产一区二区三区在线观看| 成人在线观看视频网站| 欧美激情日韩图片| 国内精品久久久久久久久| 久久久久久久色| 精品av在线播放| 91久久久在线| 久久免费视频在线| 国产精品女视频| 在线看日韩av| 成人日韩在线电影| 91中文字幕在线|