什么是在使用C#在同一台服务器上复制Mongodb中的集合的正确方法? MongoVUE有一个选项'重复集合',是否有类似的C#?复制一个mongodb集合
0
A
回答
3
没有一个内置的方式来复制与C#驱动程序的集合,但你仍然可以做到这一点很简单的:
var source = db.GetCollection("test");
var dest = db.GetCollection("testcopy");
dest.InsertBatch(source.FindAll());
但是请注意,这不会复制任何索引来自源集合。 shell的copyTo
方法具有相同的限制,所以它可能以相似的方式实现。
0
我有完全相同的问题,但是当接受的答案有效时,我也需要尽快完成。
复制集合的最快方法显然是使用具有$out
流水线阶段的聚合。这样,您不必下载所有文档,然后重新上传它们,它们只是复制到数据库中。
这是微不足道的蒙戈外壳内执行:
db.originalColl.aggregate([ { $match: {} }, { $out: "resultColl"} ]);
不过,我有很多的麻烦,从C#运行此。由于eval
现在已被弃用,因此不能只将上述内容填充到要在服务器上执行的字符串中。相反,您需要构建代表上述代码的Bson文档。
以下是我做这工作:
var aggDoc = new Dictionary<string,object>
{
{"aggregate" , "originalCollection"},
{"pipeline", new []
{
new Dictionary<string, object> { { "$match" , new BsonDocument() }},
new Dictionary<string, object> { { "$out" , "resultCollection"}}
}
}
};
var doc = new BsonDocument(aggDoc);
var command = new BsonDocumentCommand<BsonDocument>(doc);
db.RunCommand(command);
这原来是非常快的(大约3分钟复制5M的文件),并且没有数据的数据库,并运行上面的代码应用程序之间传送。一个缺点是它会创建一个临时集合,所以resultCollection
将在操作完成之前为空(或不存在)。所以如果你有一个基于resultCollection
大小的进度条,它将不再起作用。
相关问题
- 1. Mongodb恢复一些集合
- 2. 复制一个Mongodb集合,但应用了“限制”
- 3. mongoDB复制集
- 4. MongoDB的复制集合在同一个数据库
- 5. MongoDB的复制和更新在同一个集合
- 6. MongoDB使用外键将字段复制到另一个集合
- 7. 如何将一个集合从一个mongodb复制到另一个?
- 8. MongoDB过滤的复制集合
- 9. 复制列表中的一个集合到另一个集合
- 10. MongoDB - 重复项目集合
- 11. 通过Java API在MongoDB中将文档从一个集合复制到另一个集合
- 12. MongoDB如何将索引定义从一个集合复制到另一个集合?
- 13. 将TFS集合复制到另一个集合
- 14. MongoDB为每个用户重复使用一个集合
- 15. MongoDB复制集投票
- 16. 在mongodb中,如何将文档从集合复制到另一个集合中作为某个键的值?
- 17. Mongodb:多个集合或一个大集合w/index
- 18. Node,MongoDB,Mongoose Design Choice - 创建两个集合或一个集合
- 19. 将数据从一个集合复制到另一个集合C#
- 20. MongoDB限制集合复制和非常高的CPU使用率
- 21. 如何克隆(复制)同一个db集合中的MongoDB对象?
- 22. 的MongoDB:直接从另一个集合
- 23. 在MongoDB中克隆一个集合
- 24. 使用一个集合只用MongoDB的
- 25. 基于另一个搜索MongoDB集合
- 26. 文档在一个集合的MongoDB
- 27. 查询MongoDB中的一个集合
- 28. 在mongodb中更新一个集合
- 29. MongoDB一次查询多个集合
- 30. MongoDB getmore上一个集合很慢
可能的重复[如何将集合复制到MongoDB中的另一个数据库?](http://stackoverflow.com/questions/11554762/how-can-i-copy-collection-to-another-database-in- mongodb) – Philipp
这篇文章是关于复制到另一个数据库。我想复制我的收藏在同一个数据库(只是一个副本的集体) – wuyts
检查这一个接受的答案http://stackoverflow.com/questions/8933307/clone-a-collection-in-mongodb – joao