2017-05-15 15 views
0

私はmongoデータベースに2つのコレクションを持っています。現時点では、collection2の文書にcollection1のID文書があります。 Collection2の関連ドキュメントのCollection1からいくつかの値をネストされたフィールド(dataFromCollection1)にコピーしたいと思います。私はmongoベースフィールドからPythonの変数に値を渡すための解決策が見つからないため、助けを求めています。1つのmongoドキュメントの値を別のmongoドキュメントの中のフィールドにコピーするには?

Collection1: 
    { 
     "_id" : ObjectId("583d498214f89c3f08b10e2d"), 
     "name" : "Name", 
     "gender" : "men", 
     "secondName" : "", 
     "testData" : [ ], 
     "numberOf" : NumberInt(0), 
     "place" : "", 
     "surname" : "Surname", 
     "field1" : "eggs", 
     "field2" : "hamm", 
     "field3" : "foo", 
     "field4" : "bar" 
    } 


Collection2: 
{ 
    "_id" : ObjectId("58b028e26900ed21d5153a36"), 
    "collection1" : ObjectId("583d498214f89c3f08b10e2d") 
    "fieldCol2_1" : "123", 
    "fieldCol2_2" : "332", 
    "fieldCol2_3" : "133", 
    "dataFromCollection1" : { 
     "name" : " ", 
     "surname" : " ", 
     "field1" : " ", 
     "field2" : " ", 
     "field3" : " ", 
     "field4" : " " 
    } 
} 
+0

最初のコレクションから読み取って2番目のコレクションの更新操作を使用して、2番目のコレクションにデータを保存できます。更新操作で$ setプロパティを使用することを忘れないでください。それ以外の場合、既存のデータは失われます。 –

+0

現在MongoDBに接続するために使用しているPythonライブラリはどれですか? –

+0

@LakmalVithanage私はCollection1の20フィールドから5-6フィールドだけ必要です。 collection2に追加するフィールドを選択できますか?あなたはいくつかの例を送ることができますか? –

答えて

0

私は総計でこの質問は既にこのpymongo - how to match on lookup?かもしれないが、あなたを助けますので、質問された必要なフィールドを投影するためのキーと値のペア、プロジェクトを一致させるために$ルックアップを使用することができ、あなたはpymongoパッケージに集約関数を使用すべきだと思います。 次に、$ out関数を使用して新しい更新コレクションを作成することもできますし、pymongoの更新を使用して既存のコレクションを更新することもできます。

関連する問題