我想将文档从一个集合复制到另一个

时间:2019-05-15 20:59:08

标签: c# mongodb

我的数据库中有2个收藏集。假设collection_1和collection_2。我想使用C#将collection_1中的所有文档复制或移动到collection_2。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这是在数据库之间复制的解决方案。如果它们在同一个数据库中,那就更简单了,只需使用一个mongo客户端

 var fromConnectionString = "mongodb://localhost:27017"; // if copy between same database then obviously you only need one connectionstring and one MongoClient
 var toConnectionString = "mongodb://localhost:27017";
 var sourceClient = new MongoClient(fromConnectionString);
 var copyFromDb = sourceClient.GetDatabase("CopyFromDatabaseName");
 var copyCollection = copyFromDb.GetCollection<BsonDocument>("FromCollectionName").AsQueryable(); // or use the c# class in the collection
 var targetClient = new MongoClient(toConnectionString);
 var targetMongoDb = targetClient.GetDatabase("CopyToDatabase");
 var targetCollection = targetMongoDb.GetCollection<BsonDocument>("ToCollectionName");

 targetCollection.InsertMany(copyCollection);

答案 1 :(得分:0)

具有数据库查询。 来源:https://docs.mongodb.com/manual/reference/method/db.cloneCollection/

       db.cloneCollection('mongodb.example.net:27017', 'profiles', { 'active' : true } )

使用C# 来源:Duplicate a mongodb collection

var source = db.GetCollection("test");
var dest = db.GetCollection("testcopy");
dest.InsertBatch(source.FindAll());