我们正在重构一个 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}
)
似乎我没有找到如何引用找到的项目的属性,但我一直想知道是否需要在更新之前存储找到的变量。