代码之家  ›  专栏  ›  技术社区  ›  ksav

mongodb-查找并替换各个字段中的部分字符串

  •  2
  • ksav  · 技术社区  · 8 年前

    假设我有一个URL: aaa.something.com/id 这在许多不同领域的多个集合中都可以找到。

    bbb.something.com/id 通过regex(或类似方法)查找并仅替换URL字符串的前缀。

    以下内容:

    db.tests.find({ "url": /^aaa\.something\.com\// }).forEach(function(doc) {
        doc.url = doc.url.replace(/^aaa\.something\.com\//, "bbb.something.com/");
        db.tests.update({ "_id": doc._id },{ "$set": { "url": doc.name } });
    });
    

    假设该字段始终为 url .

    但在数据库中,URL可以在多个位置找到,例如:

    • content.photo
    • content.media
    • content.media[i].data
    • avatar
    • 网址
    1 回复  |  直到 8 年前
        1
  •  1
  •   hyades    8 年前

    可以使用通配符 text index 然后使用 $text 查找与指定正则表达式匹配的文档。获得这些文档后,您可以编写Javascript代码来查找与正则表达式匹配的键,并根据需要替换它们。