亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MongoDB數(shù)據(jù)庫類replace替換字符串指定內(nèi)容

 更新時(shí)間:2023年05月24日 11:05:43   作者:小沈同學(xué)呀  
mongoDB是沒有定義replace函數(shù)的,那么如果有需求需要替換nongo中數(shù)據(jù)的某一部分,怎么辦?下面這篇文章主要給大家介紹了關(guān)于MongoDB數(shù)據(jù)庫類replace替換字符串指定內(nèi)容的相關(guān)資料,需要的朋友可以參考下

需求介紹

根據(jù)業(yè)務(wù)發(fā)展,現(xiàn)在需要對(duì)已經(jīng)存在的數(shù)據(jù)進(jìn)行處理,需要替換掉字段中指定字符串。

目的數(shù)據(jù)結(jié)構(gòu)為:

{
"_id" : ObjectId("6166fa27de458266eecdb288"),
"receiverId" : NumberLong(1011500013127618),
"senderId" : NumberLong(1011500000008954),
"companyId" : 1.0,
"status" : 1.0,
"dataSources" : 4.0,
"senderType" : "employee",
"receiverType" : "customer",
"mediaType" : "text",
"connectMode" : "sys_follow",
"messageType" : "conversation",
"businessId" : NumberLong(1011500013127618),
"createTime" : ISODate("2020-01-21T04:01:23.000Z"),
"updateTime" : ISODate("2020-01-21T04:01:23.000Z"),
"message" : "1.資產(chǎn)京東:無\r\n2.工作京東:現(xiàn)金\r\n3.貸款用途:\r\n4.需要金額和時(shí)間:\r\n5.推薦產(chǎn)品:\r\n6.報(bào)費(fèi)京東:\r\n7.征信負(fù)債:\r\n8.不簽約原因:",
"_class" : "com.ysjr.base.domain.entity.ConversationInfo",
"followId" : NumberLong(1011500031014664),
"followType" : "FW001",
"result" : 1,
"intention" : "FI006",
"loseOrderReason" : [
"LR003"
],
"exec" : 1.0
}

需要將跟進(jìn)數(shù)據(jù)的 message 字段中的 ”京東“ 字段替換為 ”其他“。

技術(shù)分析

分析發(fā)現(xiàn)在MYSQL等關(guān)系數(shù)據(jù)庫中有replace函數(shù),對(duì)字符串中的字符進(jìn)行替換。對(duì)于mongodb經(jīng)查詢官方文檔,發(fā)現(xiàn)也有相似的語法可以實(shí)現(xiàn)替換功能。如下所示:

1、$replaceOne 語法,但是每次只能更新字符串中發(fā)現(xiàn)的第一個(gè)目的串

2、javascript語法,在mongodb語法中寫js代碼來替換字符串,該種方式可以兼容多個(gè)目的串的情況,缺點(diǎn)是執(zhí)行效率慢

3、java代碼,java代碼直接獲取字符串進(jìn)行replaceAll() 函數(shù)替換 ,缺點(diǎn)是需要寫代碼并且執(zhí)行效率慢。

綜合以上實(shí)現(xiàn)方式,結(jié)合實(shí)際需求,我們本次數(shù)據(jù)處理選擇第二種方式 javascript 語法集合mongodb語法實(shí)現(xiàn)。雖然執(zhí)行效率慢,但是如果采用第一種我們需要執(zhí)行多次,第三種需要寫代碼。對(duì)于一個(gè)一次性處理數(shù)據(jù)的需求,采用簡(jiǎn)單有效且僅損失部分性能我們是可以接受的。

技術(shù)積累

1、replaceOne 語法

db.getCollection('集合名稱')
.updateMany( {},//查詢條件 
[{ $set: {"字段名稱": { $replaceOne: { input:"字段名稱", find:"需要替換的字符", replacement:"目的字符" }//替換語法
 }} }] );

2、javascript語法

db.getCollection('集合名稱') 
.find({})//查詢條件 
.forEach(//循環(huán)獲取目標(biāo)數(shù)據(jù) 
function(item) { 
var message = item['字符名稱']; 
message = message.replace(/需要替換的字符/g, '目的字符');//目標(biāo)字符串替換,/g 標(biāo)識(shí)全局變量直接解決raplaceAll不支持方案,可以替換多個(gè)串 
db.getCollection('集合名稱').updateOne({"_id":item['_id']},{$set:{"字段名稱":message,"exec":1}});//修改目標(biāo)字段,完成替換 
});

實(shí)戰(zhàn)演示

將所有跟進(jìn)數(shù)據(jù)的 message 字段中的 ”京東“ 字段替換為 ”其他“

我們直接在測(cè)試環(huán)境用第二種示范:

1、查詢滿足條件的數(shù)據(jù)

db.getCollection('conversation_info') 
.find({"connectMode":"sys_follow","message":{$regex:"京東",$options:"$i"}})

 如圖所示有在測(cè)試環(huán)境數(shù)據(jù)庫中有兩條,其中一條目標(biāo)字段中有多個(gè)目的字符串。

2、在mongodb語法中融入javascript語法并執(zhí)行

db.getCollection('conversation_info') 
.find({"connectMode":"sys_follow","message":{$regex:"京東",$options:"$i"}}) 
.forEach( function(item) { 
var message = item['message']; 
message = message.replace(/京東/g, '其他'); db.getCollection('conversation_info').updateOne({"_id":item['_id']},{$set:{"message":message,"exec":1}}); 
});

 如圖所示執(zhí)行完成,提示成功但語法效率較低。

3、查看剛剛被修改的數(shù)據(jù)

db.getCollection('conversation_info') 
.find({"connectMode":"sys_follow","message":{$regex:"其他",$options:"$i"}})

 如圖所示,發(fā)現(xiàn)全部替換為目標(biāo)字符串,測(cè)試完成。

總結(jié):

MongoDB 類replace替換字符串指定內(nèi)容,replaceOne 語法僅能夠替換目標(biāo)字段中第一次出現(xiàn)的字符串,如果出現(xiàn)多次需要多次執(zhí)行 replaceOne 語法;如果用javascript 語法可以完全兼容多個(gè)目標(biāo)字符替換,極大的方便我們處理數(shù)據(jù)。

到此這篇關(guān)于MongoDB數(shù)據(jù)庫類replace替換字符串指定內(nèi)容的文章就介紹到這了,更多相關(guān)MongoDB替換字符串內(nèi)容內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MongoDB創(chuàng)建與刪除數(shù)據(jù)庫

    MongoDB創(chuàng)建與刪除數(shù)據(jù)庫

    這篇文章介紹了MongoDB創(chuàng)建與刪除數(shù)據(jù)庫的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • MongoDB mongoexport工具的使用簡(jiǎn)介

    MongoDB mongoexport工具的使用簡(jiǎn)介

    這篇文章主要介紹了MongoDB mongoexport工具的使用簡(jiǎn)介,幫助大家更好的理解和學(xué)習(xí)使用MongoDB數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-03-03
  • 關(guān)于mongodb版本升級(jí)問題

    關(guān)于mongodb版本升級(jí)問題

    這篇文章主要介紹了關(guān)于mongodb版本升級(jí)問題,具有很好的參考價(jià)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Mongodb 崩潰報(bào)錯(cuò) Too many open files的問題解析

    Mongodb 崩潰報(bào)錯(cuò) Too many open files的問題解析

    這篇文章主要介紹了Mongodb 崩潰報(bào)錯(cuò) Too many open files的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • MongoDB系列教程(八):GridFS存儲(chǔ)詳解

    MongoDB系列教程(八):GridFS存儲(chǔ)詳解

    這篇文章主要介紹了MongoDB系列教程(八):GridFS存儲(chǔ)詳解,本文講解了什么是GridFS、GridFS的實(shí)現(xiàn)原理等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • mongodb 數(shù)據(jù)庫操作詳解--創(chuàng)建,切換,刪除

    mongodb 數(shù)據(jù)庫操作詳解--創(chuàng)建,切換,刪除

    mongodb是nosql里面最像關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫。單表操作,基本上可以和關(guān)系型數(shù)據(jù)庫差不多。mongodb比較易學(xué),易用,分幾期記錄一下,學(xué)習(xí)和使用mongodb過程。
    2014-07-07
  • 記一次Mongodb中admin數(shù)據(jù)庫導(dǎo)致的事故

    記一次Mongodb中admin數(shù)據(jù)庫導(dǎo)致的事故

    這篇文章主要給大家介紹了關(guān)于一次Mongodb中admin數(shù)據(jù)庫導(dǎo)致的事故的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • MongoDB 3.4配置文件避免入坑的注意事項(xiàng)

    MongoDB 3.4配置文件避免入坑的注意事項(xiàng)

    最近在配置mongodb的時(shí)候遇到了一些問題,現(xiàn)總結(jié)出來方便以后需要或同樣遇到該問題的朋友們參考,下面這篇文章主要給大家介紹了關(guān)于MongoDB 3.4配置文件時(shí)避免入坑的兩個(gè)注意事項(xiàng),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)下吧。
    2017-09-09
  • Mongo復(fù)制集同步驗(yàn)證的實(shí)例詳解

    Mongo復(fù)制集同步驗(yàn)證的實(shí)例詳解

    這篇文章主要介紹了mongo復(fù)制集同步驗(yàn)證的實(shí)例詳解的相關(guān)資料,這里提供實(shí)現(xiàn)的方法及示例代碼,幫助大家學(xué)習(xí)理解,需要的朋友可以參考下
    2017-07-07
  • CentOS7.2 安裝 MongoDB 3.4的教程

    CentOS7.2 安裝 MongoDB 3.4的教程

    這篇文章主要介紹了CentOS7.2 安裝 MongoDB 3.4的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05

最新評(píng)論