MongoDB数据库类replace如何替换字符串指定内容
需求介绍
根据业务发展,现在需要对已经存在的数据进行处理,需要替换掉字段中指定字符串。
目的数据结构为:
需要将跟进数据的 message 字段中的 ”京东“ 字段替换为 ”其他“。
技术分析
分析发现在MYSQL等关系数据库中有replace函数,对字符串中的字符进行替换。对于mongodb经查询官方文档,发现也有相似的语法可以实现替换功能。如下所示:
1、$replaceOne 语法,但是每次只能更新字符串中发现的第一个目的串
2、javascript语法,在mongodb语法中写js代码来替换字符串,该种方式可以兼容多个目的串的情况,缺点是执行效率慢
3、java代码,java代码直接获取字符串进行replaceAll() 函数替换 ,缺点是需要写代码并且执行效率慢。
综合以上实现方式,结合实际需求,我们本次数据处理选择第二种方式 javascript 语法集合mongodb语法实现。虽然执行效率慢,但是如果采用第一种我们需要执行多次,第三种需要写代码。对于一个一次性处理数据的需求,采用简单有效且仅损失部分性能我们是可以接受的。
技术积累
1、replaceOne 语法
2、javascript语法
实战演示
将所有跟进数据的 message 字段中的 ”京东“ 字段替换为 ”其他“
我们直接在测试环境用第二种示范:
1、查询满足条件的数据
如图所示有在测试环境数据库中有两条,其中一条目标字段中有多个目的字符串。
2、在mongodb语法中融入javascript语法并执行
如图所示执行完成,提示成功但语法效率较低。
3、查看刚刚被修改的数据
如图所示,发现全部替换为目标字符串,测试完成。
总结:
MongoDB 类replace替换字符串指定内容,replaceOne 语法仅能够替换目标字段中第一次出现的字符串,如果出现多次需要多次执行 replaceOne 语法;如果用javascript 语法可以完全兼容多个目标字符替换,极大的方便我们处理数据。