2012-09-25 44 views
3

我想从一个Mongo数据库中将4个集合自动从C#程序复制到另一个同一台机器上。我怎么做? MongoDB C#驱动程序中是否有简单的复制收集/数据库命令?或者我必须首先使用Mongo shell来输入./mongo?如果是的话,我该如何在MS-DOS命令行窗口中执行该操作?像./mongo -copycollection from to来自DOS或Windows的MongoDB命令

回答

7

使用mongodump,类型:

./mongodump --db your_db_name --collection collection_name 

然后mongorestore:

./mongorestore --db=new_db_name 

了解更多:mongodumpmongorestore

7

可以使用mongodump & mongorestore

1->备份单个数据库
mongodump -h localhost -d database_name -o C:\DestinationFolder(备份到DestinationFolder)

2->恢复数据库

mongorestore -h localhost C:\DestinationFolder(RESTOR从DestinationFolder)

3->你CA备份和RESTOR一个单次收藏

备份单一收藏

mongodump -h localhost -d database_name -c Collection_name -o C:\Dest_SingleCollBkp 

4->恢复单个集合

mongorestore -h localhost C:\Dest_SingleCollBkp 

5->你可以在一次复制单个集合

副本 - >

use source_database; 
var docs = db.source_collection.find({ accessed: { 
     '$gte': new Date(2012, 4, 1), '$lt': new Date(2012, 5, 1) 
     } }); 

过去 - > :)

use new_database; 
//switched to db new_database 
docs.forEach(function(doc) { db.new_collection.insert(doc) }); 

6->copy the entire database

db.copyDatabase('from_database_name', 'to_databasename', 'from_hostname') 
+1

这为我工作,并添加几个简单的步骤,我在那里mongodump.exe所在的文件夹中打开命令提示符,mongod.exe运行之后,然后可以运行mongodump -h localhost -d database_name -o C:\ DestinationFolder命令,它工作。 – edencorbin

+0

正确!并且您始终可以将安装和可执行文件的路径添加到环境变量中。这是如何添加一个新的文件夹到我的系统路径很好的来源http://windowsitpro.com/systems-management/how-can-i-add-new-folder-my-system-path – mongotop

+0

你好,我是能够恢复整个mongo转储,我看到以下错误 C:\ Program Files \ MongoDB 2.6标准\ bin> mongorestore --db DEVL D:\ DB \数据库转储 错误解析命令行:太多位置选项 尝试'mongorestore --help'以获取更多信息 C:\ Program Files \ MongoDB 2.6 Standard \ bin> – Prateek