Concat 2 mongodb系列

时间:2016-06-26 16:41:35

标签: mongodb

我试图将2个集合合并为一个(不是连接)。我有2个具有相同集合和集合结构的数据库。

例如:

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" : []
}

我试图创建以下内容:

一个集合测试db,其中文档将从test1和test2合并而不是彼此合并。实现这个目标的正确方法是什么?

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

复杂性是在其他mongo集合中引用了ID。

1 个答案:

答案 0 :(得分: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