在MongoDB中,不存在用于将集合从一个数据库复制到另一个数据库的命令。为此,请使用以下概念-
db.yourCollectionName.find().forEach(function(yourVariableName){ db.getSiblingDB('yourDestinationDatabase')['yourCollectionName'].insert(yourVariableName); });
让我们在测试数据库中创建一个集合,然后将此集合复制到另一个名为“ sample”的数据库。
为了理解上述语法,让我们用文档创建一个集合。使用文档创建集合的查询如下-
<测试>
> use test switched to db test > db.copyThisCollectionToSampleDatabaseDemo.insertOne({"User_Id":101,"UserName":"Larr y"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77ad622386c62d05142a67") } > db.copyThisCollectionToSampleDatabaseDemo.insertOne({"User_Id":102,"UserName":"Maxwell"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77ad6e2386c62d05142a68") } > db.copyThisCollectionToSampleDatabaseDemo.insertOne({"User_Id":103,"UserName":"Robert"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77ad7c2386c62d05142a69") }
在find()
method的帮助下显示集合中的所有文档。查询如下-
> db.copyThisCollectionToSampleDatabaseDemo.find().pretty();
以下是输出-
{ "_id" : ObjectId("5c77ad622386c62d05142a67"), "User_Id" : 101, "UserName" : "Larry" } { "_id" : ObjectId("5c77ad6e2386c62d05142a68"), "User_Id" : 102, "UserName" : "Maxwell" } { "_id" : ObjectId("5c77ad7c2386c62d05142a69"), "User_Id" : 103, "UserName" : "Robert" }
让我们检查示例数据库是否具有名称为“ copyThisCollectionToSampleDatabaseDemo”的集合。
查询如下-
<样本>
> use sample; switched to db sample > show collections;
以下是输出-
deleteDocuments deleteDocumentsDemo deleteInformation employee internalArraySizeDemo sourceCollection updateInformation userInformation
因此,没有名称为“ copyThisCollectionToSampleDatabaseDemo”的集合。
现在,我们将上述集合从测试数据库复制到示例数据库。查询如下-
> use test; switched to db test > db.copyThisCollectionToSampleDatabaseDemo.find().forEach(function(send){ db.getSiblingDB('sample')['copyThisCollectionToSampleDatabaseDemo'].insert(send); });
现在,让我们再次检查样本数据库中是否已成功复制集合。
查询如下-
> use sample; switched to db sample > show collections;
以下是输出-
copyThisCollectionToSampleDatabaseDemo deleteDocuments deleteDocumentsDemo deleteInformation employee internalArraySizeDemo sourceCollection updateInformation userInformation
查看示例输出,示例数据库中存在集合“ copyThisCollectionToSampleDatabaseDemo”,而测试数据库中也存在该集合。