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