2016-06-26 6 views
1

2つのコレクションを1つに結合しようとしています(結合ではありません)。私は同じコレクションとコレクションの構造を持つ2つのデータベースを持っています。Concat 2 mongodbコレクション

例として:

Collection test1 db1: 

{ 
    "_id" : ObjectId("574c339b3644a65b36e77359"), 
    "appName" : "App1", 
    "customerId" : "Client1", 
    "environment" : "PROD", 
    "methods" : [] 
} 

Collection test2 db2: 

{ 
    "_id" : ObjectId("574c367d627b45ef0abc00e5"), 
    "appName" : "App2", 
    "customerId" : "Client2", 
    "environment" : "PROD", 
    "methods" : [] 
} 

私は、次のものを作成しようとしている:

文書がTEST1とTEST2ではなく、お互いに1からマージされる一つのコレクションのテストデシベル、。これを達成するための正しい方法は何でしょうか?

{ 
    "_id" : ObjectId("574c339b3644a65b36e77359"), 
    "appName" : "App1", 
    "customerId" : "Client1", 
    "environment" : "PROD", 
    "methods" : [] 
},  
{ 
    "_id" : ObjectId("574c367d627b45ef0abc00e5"), 
    "appName" : "App2", 
    "customerId" : "Client2", 
    "environment" : "PROD", 
    "methods" : [] 
} 

複雑さは、IDが他のmongoのコレクションで参照されることです。

+0

私の答えは、あなたが、それはこの参照してください受け入れる助けた場合:http://stackoverflow.com/help/accepted-answerの提案は、@ profesor79ため – profesor79

答えて

1

最も速い方法は、ダンプ(mongodumpを使用)を作成し、一度にそれらを復元することです(例:windowsパスを使用しています)。

mongodump --db test1 --collection test1 --out c:\dump\test1 
mongodump --db test2 --collection test2 --out c:\dump\test2 

mongorestore --db test3 --collection test3 c:\dump\test1 
mongorestore --db test3 --collection test3 c:\dump\test2 
+0

おかげで、このアプローチのアドレスは、「複雑さの一部だろうがそのIDは他のmongoのコレクションで参照されていますか? " –

+0

ソース文書に重複があります - そうですか? – profesor79

+0

私はidがソースデータベースの他のコレクションで参照されているので、インポートが完了すると元のIDは変更され、他のコレクションは引き続き元のIDを参照します。依存関係の順序で1つずつインポートし、新しく生成された_idに元の参照を更新すること以外は解決する方法はありません。大きなコードを書くことなくそれを作る方法は、大歓迎です。 –

関連する問題