mongodb 正则查找 并 替换 匹配的地方 为指定字符 的语句 怎么写

来源:3-8 【读取文档】动手实战 - 玩转文档游标

香饽饽0

2019-05-16

mongodb 正则查找 并 替换 匹配的地方 为指定字符 的语句 怎么写

写回答

1回答

Stannum

2019-05-16

同学你好~MongoDB没有提供直接的update操作符来进行正则表达式替换 所以你需要使用游标来遍历查找得到的文档并且进行替换 举个例子:

db.accounts.find( { "name": { $regex: /al.*ce/ } } ).forEach(function(doc) {    

doc.name = doc.name.replace(/al.*ce/g, 'bob');    

db.accounts.save(doc);    

});    

这里我们首先使用$regex操作符来查找所有name字段匹配al.*ce正则表达式的文档 然后使用forEach()函数来遍历find()返回的游标中的所有文档 使用replace()函数将文档中的name字段中匹配al.*ce的文字部分替换成bob 最后把替换过的内容保存下来 这样就达到了使用正则表达式查找替换的目的

0
1
香饽饽0
非常感谢!
2019-05-17
共1条回复

玩转MongoDB4.0(最新版) 从入门到实践

30%理论+70%实战,用实操检验真理,一门让你事半功倍的入门进阶课

1138 学习 · 197 问题

查看课程