4

私たちは mongo データベースをリファクタリングしています。あるフィールドの値を取得し、それを別のフィールドの配列のハッシュに配置したいと考えています。以前のドキュメントでのデータの外観は次のとおりです。

basecampURL: "https://basecamp.com/123/",
trackingSystems: [
    {
        type: "github",
        url: "https://github.com/org/repo/issues/"
    }
]

そして、これが私が達成したいと思っていることです:

trackingSystems: [
    {
        type: "basecamp",
        url: "https://basecamp.com/123/"
    },
    {
        type: "github",
        url: "https://github.com/org/repo/issues/"
    }
]

このコードのいくつかのバリエーションを試してみましたが、basecampURL の見つかった変数を参照するときに問題が発生し、MongoDB Updateのすべての例で文字列が使用されています。

db.projects.update( 
    { basecampURL: '.+' }, 
    { $push: 
        { trackingSystems: 
            { 
                type: 'basecamp',
                url: basecampURL // this isn't valid, also tried $.basecampURL
            }
        },
      $unset: 
        { basecampURL: '.+' }
    },
    { multi: true}
)

見つかったアイテムのプロパティを参照する方法が見つからないようですが、更新の前に見つかった変数を保存する必要があるかどうか疑問に思っていました。

4

2 に答える 2