美文网首页js css html
MongoDB字符串替换

MongoDB字符串替换

作者: AC编程 | 来源:发表于2022-06-16 09:39 被阅读0次

一、更新普通字段

1.1 样例
db.dynamic.updateMany(
  {member_icon:{"$exists":true}},
  [{
    $set: {member_icon: {
      $replaceOne: { input:"$member_icon", find:"oss-cn-shenzhen.aliyuncs.com", replacement:"oss.alanchen.com" }
    }}
  }]
);
1.2 说明

1、第一部分{member_icon:{"$exists":true}}是匹配查询,用于过滤要更新的文档,并且该位置可以加快查询速度。

2、第二部分($set: { member_icon: {...)是更新聚合管道(请注意方括号表示使用聚合管道)

  • $set是新的聚合运算符(Mongo 4.2),在这种情况下,它将替换字段的值。
  • 用新的$replaceOne运算符计算新值。注意member_icon如何根据其自身的值($member_icon)直接修改。

二、更新数组

2.1 样例
db.dynamic.updateMany(
  {"attachments.urls":{"$exists":true}},
  [{
    $set: {
      "attachments.urls": {
        $map: {
          input: "$attachments.urls",
          in: {
            $replaceOne: {
              input: "$$this",
              find: "oss-cn-shenzhen.aliyuncs.com",
              replacement: "oss.alanchen.com"
            }
          }
        }
      }
    }
  }]
);
2.2 说明

attachments是一个数组,urlsattachments里的数组,我们需要迭代attachments.urls数组的循环并替换urls$map迭代attachments.urls数组的循环,$replaceOne替换字符串。

三、更新数组里的对象字段

3.1 样例
db.dynamic.find({"attachments.url":{"$exists":true}})
    .sort({
        _id: -1
    }).forEach( function(item) {

     item.attachments.forEach(function(e) {
        e.url =  e.url.replace('oss-cn-shenzhen.aliyuncs.com','oss.alanchen.com');
     })
     db.getCollection("dynamic").update({_id:item._id},{$set:{attachments: item.attachments}});
 });
3.2 说明

ttachments是一个数组,url是attachments里对象的一个字段。

参考资料
在mongodb中的字符串数组中查找和替换

MongoDB通过forEach循环实现Replace

相关文章

  • MongoDB字符串替换

    一、更新普通字段 1.1 样例 1.2 说明 1、第一部分{member_icon:{"$exists":true...

  • Android中string.xml应用

    配置字符串替换 单个字符串替换 使用Context方法,动态替换 多个个字符串替换 配置字符串中的空格

  • js替换字符串

    1、替换第一个字符串: 2、替换所有字符串 3、替换所有key的字符串

  • MongoDB字段值批量替换

    MongoDB字段值批量替换。比如,将thirdDevID中的123全部替换为456.

  • 实现模板引擎

    字符串替换 Template(模板) 目录 字符串拼接 string format(字符串格式化) 模板替换 自制...

  • linux-对文件某个字符串替换,批量替换

    全部替换:sed -i 's/查找的字符串/替换的字符串/g' 文件 替换每行第一次出现的字符串:sed -i '...

  • Vim常用配置

    替换 语法为 :[addr]s/源字符串/目的字符串/[option]全局替换命令为::%s/源字符串/目的字符串...

  • sed

    1、替换1.1 sed 's/原字符串/替换字符串/'单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需...

  • sed中转义字符的替换

    sed中转义字符的替换 背景 在使用sed的时候,经常我们会用来替换字符串,如果被替换的字符串中包含转移字符串怎么...

  • Vi用法

    替换 语法为:[range]s/源字符串/目的字符串/[option] 全局替换命令为::%s/源字符串/目的字符...

网友评论

    本文标题:MongoDB字符串替换

    本文链接:https://www.haomeiwen.com/subject/wxixvrtx.html