mongodb - 在各个字段中查找和替换部分字符串

时间:2016-09-09 09:53:41

标签: javascript mongodb

假设我有一个网址:aaa.something.com/id,可以在多个不同字段的多个集合中找到。

我想通过regex(或类似代码)将其更改为bbb.something.com/id,以便只查找和替换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
  • url

1 个答案:

答案 0 :(得分:1)

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