2016-09-09 9 views
2

URL:aaa.something.com/idはいくつかのコレクションで、さまざまなフィールドにあります。mongodb - さまざまなフィールドで部分的な文字列を検索して置き換えます。

URL文字列の接頭辞だけを検索して置換するために、regex(または類似のもの)を使用してbbb.something.com/idに変更したいと思います。次

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

答えて

0

ワイルドカードtext indexを使用して、$textを使用して、指定した正規表現に一致するドキュメントを見つけることができます。これらのドキュメントを取得したら、あなたの正規表現に合ったキーを見つけ出し、必要に応じてそれらを置き換えるためのJavascriptコードを書くことができます。

関連する問題