私のクエリに効率的な解決策が見つかりません。ここに私がしたいことがあります。Mongo Query:ある文書から別の文書にフィールド+値をコピー
私は「トラック」
「リリース」と呼ばれるコレクションを持っている 「リリース」と呼ばれるコレクションを持っているが、すべての「リリース」文書のために満たされているフィールド「RELEASEDATE」を、持っています。
db.tracks.releases.releaseDate (db.tracks.releasesは既に存在しますが、releaseDateはありません)の下に、すべての "トラック"ドキュメントに対応するreleaseDateを "releases"にしたいと考えています。
対応RELEASEDATE、 "リリース" を見つけ、 "トラック" の双方には、Icpnは番号を持っている: db.releases.icpn
これら
db.tracks.releases.icpnを見つけるために比較することができます各トラックの正しいリリース日。
まとめてみましょう: 私はすべてのトラックを通過し、ICPNを見て、同じICPNでリリースを検索し、リリースからリリースまでトラックにコピーする必要があります。
私はそれがこのように動作させることができます:
db.releases.find私のテストのために働いていた()はforEach(機能(DOC){
db.tracks.update(
{ "releases.0.ICPN" : doc.ICPN},
{
$set: { "releases.0.releaseDate": doc.releaseDate},
$currentDate: {"lastModified": true}
},
{ multi: true}
)
})
。 DBを使用していますが、シングルリリースごとに各トラックを通過するのは非常に非効率的です。
正しい軌道に乗るためのヒントはありますか?
敬具、 アレックス
さて、わかりました。それはそこで完全に混乱してしまった。 –
(コメントを削除しました) –