別のコレクションで選択された値でコレクションのフィールドを更新する必要があります。私は、他のコレクションの新しい値を見つけるために更新する必要のあるフィールドの値を使用します。MongoDBの更新値と別のコレクションで実行されたクエリの結果
db.Organizations.find({}).forEach(function(doc) {
print(doc.Country.DisplayName);
var c = db.Countries.find({"DisplayName": doc.Country.DisplayName});
doc.Country = c;
print(doc.Country.DisplayName);
});
結果:
私はこれを試してPhilippines
[unknown type]
私はこれをどのように達成することができますか? ありがとうございます。
編集: 私はfindOne()
を使用して解決策を見つけた(私のコレクションには重複した国はありません)
var index = 0;
db.Organizations.find({"Country": { $ne: null }}).forEach(function(doc) {
print(index + ': ' + doc.Country.DisplayName);
var myDoc = db.Countries.findOne({"DisplayName": doc.Country.DisplayName});
if (myDoc){
print(index + ': ' + myDoc);
doc.Country = myDoc;
print(index + ': ' + doc.Country.DisplayName);
}
index++;
});
そして結果:
0: Philippines 0: [object BSON] 0: Philippines 1: Singapore 1: [object BSON] 1: Singapore
あなたは何をしようとしていますか? **更新** ** 1つのコレクション内のドキュメント? 2つのコレクションのサンプルと期待される結果を見せてください。 – styvane
Organizationsコレクションのフィールド「Country」をCountriesコレクションで実行されたクエリの結果で更新したいとします。結果は「フィリピンフィリピン」 – Karine
あなたの書類を見ることができますか? – styvane