Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Concat 2 mongodb系列_Mongodb - Fatal编程技术网

Concat 2 mongodb系列

Concat 2 mongodb系列,mongodb,Mongodb,我正在尝试将两个集合合并为一个集合(不合并)。我有两个具有相同集合和集合结构的数据库 例如: Collection test1 db1: { "_id" : ObjectId("574c339b3644a65b36e77359"), "appName" : "App1", "customerId" : "Client1", "environment" : "PROD", "methods" : [] } Collection test2 db2: {

我正在尝试将两个集合合并为一个集合(不合并)。我有两个具有相同集合和集合结构的数据库

例如:

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" : []
}
我正在尝试创建以下内容:

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

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

复杂的是,在其他mongo集合中引用ID。

最快的方法是创建转储(使用mongodump)并立即恢复它们(例如使用windows路径)


如果我的回答有助于你接受,请看这个:谢谢你的建议,@profesor79,这种方法能解决“复杂性在于ID在mongo的其他集合中被引用”这一部分吗?所以我们在源文档中有重复项-是吗?我在源数据库的其他集合中引用了ID,因此,当导入完成时,原始id将发生变化,而其他集合仍将引用原始id。除了按照依赖顺序逐个导入并将原始引用更新为新生成的_id之外,我看不到任何解决方法。欢迎您提供任何建议,如何在不编写大量代码的情况下进行此操作。但是_id将被保留-除非我们有副本
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