什麼是在使用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