首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongodb更新多个文档中字符串中的特定单词。

Mongodb更新多个文档中字符串中的特定单词。
EN

Stack Overflow用户
提问于 2020-11-10 08:01:03
回答 1查看 419关注 0票数 0

我正在为我的一个小项目更新一个mongodb集合,在现有的字段中,我只需要更新一个单词。

示例:

代码语言:javascript
复制
{
   "_id" : ObjectId("5faa46a6036e146f85a4afef"),
   "name" : "Kubernetes_cluster_setup - kubernetes-cluster"
}
  • 在文档中,我想更改"name": "Kubernetes_cluster_config -kubernetes-cluster"
  • 我希望用配置代替安装程序,它不应该删除-kubernetes-集群,这是一个常量值。

Applied > $set更新整个字段,但是不应该删除-kubernetes-集群。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-10 08:37:40

尝试使用$replaceOne操作符。

你需要这样的聚合。

代码语言:javascript
复制
db.collection.aggregate([
  {
    "$match": {
      "id": 0
    }
  },
  {
    "$set": {
      "name": {
        "$replaceOne": {
          "input": "$name",
          "find": "setup",
          "replacement": "config"
        }
      }
    }
  }
])

第一部分是查找元素(我已被id使用过),第二部分用于替换为字段name,即config的值setup

示例这里

此外,如果要替换每个文档的字符串,可以使用以下查询:

代码语言:javascript
复制
db.collection.aggregate([
  {
    "$match": {
      "name": {
        "$regex": "setup"
      }
    }
  },
  {
    "$set": {
      "name": {
        "$replaceOne": {
          "input": "$name",
          "find": "setup",
          "replacement": "config"
        }
      }
    }
  }
])

在这里,查询查找字段name包含单词setup的文档,然后替换为config

示例这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64764934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档