首页 > 数据库 >MongoDB导入导出

MongoDB导入导出

时间:2023-07-16 16:01:26浏览次数:48  
标签:tank users -- MongoDB 备份 导出 导入

物理备份

物理备份是指将MongoDB数据库文件复制到备份服务器或存储设备上。MongoDB使用的是一种称为"copy-on-write"的技术,这意味着当修改MongoDB数据库时,MongoDB会将数据复制到一个新的文件中,而原始文件仍然保留不变。这使得可以在不中断服务的情况下备份MongoDB数据库。

 

物理备份使用mongodumpmongorestore命令行工具。mongodump命令将MongoDB数据库的数据导出到一个备份文件夹中,而mongorestore命令将备份数据恢复到MongoDB数据库中

 

以下是使用mongodump命令进行物理备份的示例:

 

mongodump --host <hostname> --port <port> --username <username> --password <password> --db <database> --out <output_directory>

上面的命令将MongoDB数据库的数据备份到output_directory文件夹中。

 

以下是使用mongorestore命令进行物理恢复的示例:

 

mongorestore --host <hostname> --port <port> --username <username> --password <password> --db <database> <input_directory>

 

上面的命令将input_directory文件夹中的MongoDB备份数据恢复到MongoDB数据库中

逻辑备份

逻辑备份是指将MongoDB数据库中的数据导出到一个格式化的文件中,例如JSON或CSV。逻辑备份可以使用MongoDB的导入和导出功能实现。逻辑备份可以使备份文件更加可读,但备份和恢复数据的速度通常比物理备份慢。

 

以下是使用mongoexport命令进行逻辑备份的示例:

mongoexport --host <hostname> --port <port> --username <username> --password <password> --db <database> --collection <collection> --out <output_file>

 

上面的命令将名为collection的MongoDB集合的数据导出到output_file文件中。

 

以下是使用mongoimport命令进行逻辑恢复的示例:

mongoimport --host <hostname> --port <port> --username <username> --password <password> --db <database> --collection <collection> --file <input_file>

上面的命令将`input_file中的数据导入到名为collection的MongoDB集合中。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mongoexport导出表,或者表中部分字段

 

1,常用命令格式

mongoexport -h IP --port 端口 -u 用户名 -p 密M -d 数据库 -c 表名 -f 字段 -q 条件导出 --csv -o 文件名

 

上面的参数好理解,重点说一下:


-f 导出指字段,以字号分割,-f name,email,age导出name,email,age这三个字段


-q 可以根查询条件导出,-q '{ "uid" : "100" }' 导出uid为100的数据


--csv 表示导出的文件格式为csv的,这个比较有用,因为大部分的关系型数据库都是支持csv,在这里有共同点

 

2,导出整张表

# mongoexport -d tank -c users -o /home/zhangy/mongodb/tank/users.dat
connected to: 127.0.0.1
exported 4 records

 

3,导出表中部分字段

# mongoexport -d tank -c users --csv -f uid,name,sex -o tank/users.csv

connected to: 127.0.0.1

exported 4 records

4,根据条件敢出数据

# mongoexport -d tank -c users -q '{uid:{$gt:1}}' -o tank/users.json

connected to: 127.0.0.1
exported 3 records

 

mongoimport导入表,或者表中部分字段

1,常用命令格式

 

1.1,还原整表导出的非csv文件
mongoimport -h IP --port 端口 -u 用户名 -p 密M -d 数据库 -c 表名 --upsert --drop 文件名
重点说一下--upsert,其他参数上面的命令已有提到,--upsert 插入或者更新现有数据


1.2,还原部分字段的导出文件
mongoimport -h IP --port 端口 -u 用户名 -p 密M -d 数据库 -c 表名 --upsertFields 字段 --drop 文件名
--upsertFields根--upsert一样


1.3,还原导出的csv文件
mongoimport -h IP --port 端口 -u 用户名 -p 密M -d 数据库 -c 表名 --type 类型 --headerline --upsert --drop 文件名
上面三种情况,还可以有其他排列组合的。

 

2,还原导出的表数据

# mongoimport -d tank -c users --upsert tank/users.dat
connected to: 127.0.0.1
Tue Dec 3 08:26:52.852 imported 4 objects

3,部分字段的表数据导入

# mongoimport -d tank -c users --upsertFields uid,name,sex tank/users.dat
connected to: 127.0.0.1
Tue Dec 3 08:31:15.179 imported 4 objects

4,还原csv文件

# mongoimport -d tank -c users --type csv --headerline --file tank/users.csv
connected to: 127.0.0.1
Tue Dec 3 08:37:21.961 imported 4 objects

 

标签:tank,users,--,MongoDB,备份,导出,导入
From: https://www.cnblogs.com/chengxuyonghu/p/17557987.html

相关文章

  • Nginx代码导入CLion
    安装mingw64C/C++编译器GCC的Windows版本https://sourceforge.net/projects/mingw/从官网下载后勾选勾选全部后关闭窗口时选择reviewchanges设置环境变量通过命令gcc-v检验是否设置成功。打开代码后,打开某个c文件,选择CreateCMakeLists.txt直接点击OK......
  • vite-plugin-vue-images——Vite自动导入图片
    vite-plugin-vue-images——Vite自动导入图片在Vue2时我们经常会这样引用图片:<img:src='require("地址")'/>但在Vite中不支持require了,引用图片变成了下面这样:<template><img:src='imgUrl'/></template><scriptsetup>importimgUrl......
  • 在Protocol Buffers中导入当前目录中的.proto文件
    在protobuf中导入当前目录中的.proto文件时,可以使用相对路径。相对路径是相对于当前.proto文件所在的目录来引用其他.proto文件。假设有以下目录结构:my_project/|--proto/||--person.proto|--main.proto如果要在main.proto中想导入person.proto,可以使用相对路径proto......
  • 将gephi文件导入到networkx中使用
    最近基于Transbigdata库编写代码获取了某市轨道交通网络的邻接表及shp文件,并使用Gephi对轨道交通网络进行了可视化处理,之后想尝试一下把Gephi的成果快捷地转为networkx格式来计算各种指标,编写了一些代码,步骤如下:1.将gephi成果导出打开gephi文件后点击文件—输出—图表文件选择......
  • Java导出格式化后的JSON文件
    Java导出格式化json文件直接上代码:privatevoiddownloadJsonFile(LifeDTOlifeDTO,HttpServletResponseresponse){Stringcontent=JSON.toJSONString(lifeDTO,SerializerFeature.PrettyFormat,SerializerFeature.WriteMapNullValue,SerializerFeature......
  • Mysql导入sql脚本报错,时间格式数据为空
    Mysql导入sql脚本报错,时间格式数据为空Mysql导入sql脚本时候导入的sql脚本中有时间格式为空的时候时间格字段会报错。解决方式也很简单:查看sql_mode:select@@session.sql_mode;查询结果:STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,N......
  • windows下用mysqldump导出数据库中文乱码的解决方案
    解决方案是从这篇文章得到的启发:http://www.pcxitongcheng.com/server/anz/2022-12-06/33622.html先去mysql里确认字符编码是utf8:showvariableslike'%char%'主要确认character_set_results。先创建好sql文件,比如d:\backup.sql然后备份的时候用--result-file=指定刚创建的文......
  • Nuke导出视频缺失 H.246格式 的解决办法
    同事在使用Nuke导出视频时报错,报错提示:缺失H.246格式后来经过我的研究发现,QuicktimePlayer在标准安装时,默认不关联一些格式(具体是哪些格式不清楚)QuicktimePlayer在安装过程中,不要选择标准安装,应该是选择自定义安装,然后在安装的过程中,要完全安装这样就不会报错了。 p......
  • 要在PHP中导入Excel文件并转换复杂的公式,可以使用PhpSpreadsheet库。这个库是PHPExcel
    要在PHP中导入Excel文件并转换复杂的公式,可以使用PhpSpreadsheet库。这个库是PHPExcel的继任者,提供了更多功能和更好的性能。下面是一个示例代码,展示了如何使用PhpSpreadsheet库导入Excel文件、读取和计算复杂的公式:```php// 引入PhpSpreadsheet库的Autoloaderrequire 'vendor/a......
  • mongodb报错Sort exceeded memory limit of 104857600 bytes
    mongodb运行过程中,遇到错误信息:2023-07-14T09:29:33.853ERRFailedtoQueryBsPoolUnivStaterror="(QueryExceededMemoryLimitNoDiskUseAllowed)Executorerrorduringfindcommand::causedby::Sortexceededmemorylimitof104857600bytes,butdidnotoptinto......