首页 > 数据库 >mongodb使用自带命令工具导出导入数据

mongodb使用自带命令工具导出导入数据

时间:2023-04-24 22:24:10浏览次数:37  
标签:exe -- mongodb 导出 导入 result 自带 options

记录 mongo 数据库用原生自带的命令工具使用 json 文件方式进行导入、导出的操作!

在一次数据更新中,同事把老数据进行了清空操作,但是新的逻辑数据由于某种原因(好像是她的电脑中病毒了),一直无法正常连接数据库进行数据插入,然后下午2点左右要给甲方演示,所以要紧急恢复本地的部分数据到生产库。

在此之前我只用过 mongo 自带的命令 mongoexport 进行过导出操作,把数据库的某个 collection 导出为 json 文件,那么这次是要先导出再导入,实现了一个完整的数据迁移闭环,所以在此记录一下,以备不时之需。

一、下载 mongo 工具包

mongo工具包包括管理数据的一些工具 exe 文件,具体如下:

  • mongoexport.exe:导出数据命令工具
  • mongoimport.exe:导入数据命令工具
  • bsondump.exe: 用于将导出的BSON文件格式转换为JSON格式
  • mongodump.exe: 用于从mongodb数据库中导出BSON格式的文件,类似于mysql的dump工具mysqldump
  • mongofiles.exe: 用于和mongoDB的GridFS文件系统交互的命令,并可操作其中的文件,它提供了我们本地系统与GridFS文件系统之间的存储对象接口
  • mongorestore.exe: 用于恢复导出的BSON文件到 mongodb 数据库中
  • mongostat.exe: 当前 mongod 状态监控工具,像linux中监控linux的vmstat
  • mongotop.exe: 提供了一个跟踪mongod数据库花费在读写数据的时间,为每个collection都会记录,默认记录时间是按秒记录

这个工具跟 mongo 的版本有关系,部分版本自带该工具包,比如下图的 4.x 版本,我用的 5.0 版本没有自带工具包,所以我需要先去官网下载工具包文件,然后把 bin 目录下的工具复制到 5.0 版本的 bin 目录下,才能进行数据的导出、导入操作。
工具包的下载地址为:mongo工具包下载地址,解压后把bin文件夹里的文件全部拷贝到 MongoDB 安装目录bin文件夹下。

二、导出数据

进入到 mongo 的安装目录 bin 下,使用 mongoexport 工具进行数据的 导出 操作

1、无密码导出操作:

mongoexport.exe -h localhost:28007 -d database  -c result -o D:/project/result.json

2、有密码的导出操作:

mongoexport.exe -h localhost:28007 -d database -u admin  -p 123456  -c result -o D:/project/result.json

三、导入数据

进入到 mongo 的安装目录 bin 下,使用 mongoimport 工具进行数据的 导入 操作

mongoimport.exe -h localhost:28007 -u admin -p 123456 -d database -c result --file D:/project/result.json

执行结果如下表示导入成功

D:\MongoDB\Server\5.0\bin>mongoimport.exe -h localhost:28007 -u admin -p 123456 -d database -c result --file D:/project/result.json
2023-04-11T13:34:39.799+0800    connected to: mongodb://localhost:28007/
2023-04-11T13:34:42.799+0800    [#######.................] DSPM_SJZ_PROD.result 20.2MB/66.4MB (30.4%)
2023-04-11T13:34:45.799+0800    [##############..........] DSPM_SJZ_PROD.result 40.5MB/66.4MB (61.1%)
2023-04-11T13:34:48.799+0800    [#####################...] DSPM_SJZ_PROD.result 60.4MB/66.4MB (91.0%)
2023-04-11T13:34:49.660+0800    [########################] DSPM_SJZ_PROD.result 66.4MB/66.4MB (100.0%)
2023-04-11T13:34:49.660+0800    386810 document(s) imported successfully. 0 document(s) failed to import.

参数释义:
-h :指的是 host 主机地址
-u :指的是用户账号
-p :指的是账户密码
-d :指的是数据库 database 简称
-c :指的是表 collection 简称
-o :指的是导出路径 output 简称
--file :指的是需要导入的文件

四、其他

使用过程中可以使用 --help 进行参数意思的查看

D:\MongoDB\Server\5.0\bin>mongoimport --help
Usage:
  mongoimport <options> <connection-string> <file>

Import CSV, TSV or JSON data into MongoDB. If no file is provided, mongoimport reads from stdin.

Connection strings must begin with mongodb:// or mongodb+srv://.

See http://docs.mongodb.com/database-tools/mongoimport/ for more information.

general options:
      /help                                       print usage
      /version                                    print the tool version and exit
      /config:                                    path to a configuration file

verbosity options:
  /v, /verbose:<level>                            more detailed log output (include multiple times for more verbosity,
                                                  e.g. -vvvvv, or specify a numeric value, e.g. --verbose=N)
      /quiet                                      hide all log output

connection options:
  /h, /host:<hostname>                            mongodb host to connect to (setname/host1,host2 for replica sets)
      /port:<port>                                server port (can also use --host hostname:port)

ssl options:
      /ssl                                        connect to a mongod or mongos that has ssl enabled
      /sslCAFile:<filename>                       the .pem file containing the root certificate chain from the
                                                  certificate authority
      /sslPEMKeyFile:<filename>                   the .pem file containing the certificate and key
      /sslPEMKeyPassword:<password>               the password to decrypt the sslPEMKeyFile, if necessary
      /sslCRLFile:<filename>                      the .pem file containing the certificate revocation list
      /sslFIPSMode                                use FIPS mode of the installed openssl library
      /tlsInsecure                                bypass the validation for server's certificate chain and host name

authentication options:
  /u, /username:<username>                        username for authentication
  /p, /password:<password>                        password for authentication
      /authenticationDatabase:<database-name>     database that holds the user's credentials
      /authenticationMechanism:<mechanism>        authentication mechanism to use
      /awsSessionToken:<aws-session-token>        session token to authenticate via AWS IAM

kerberos options:
      /gssapiServiceName:<service-name>           service name to use when authenticating using GSSAPI/Kerberos
                                                  (default: mongodb)
      /gssapiHostName:<host-name>                 hostname to use when authenticating using GSSAPI/Kerberos (default:
                                                  <remote server's address>)

namespace options:
  /d, /db:<database-name>                         database to use
  /c, /collection:<collection-name>               collection to use

uri options:
      /uri:mongodb-uri                            mongodb uri connection string

input options:
  /f, /fields:<field>[,<field>]*                  comma separated list of fields, e.g. -f name,age
      /fieldFile:<filename>                       file with field names - 1 per line
      /file:<filename>                            file to import from; if not specified, stdin is used
      /headerline                                 use first line in input source as the field list (CSV and TSV only)
      /jsonArray                                  treat input source as a JSON array
      /parseGrace:<grace>                         controls behavior when type coercion fails - one of: autoCast,
                                                  skipField, skipRow, stop (default: stop)
      /type:<type>                                input format to import: json, csv, or tsv
      /columnsHaveTypes                           indicates that the field list (from --fields, --fieldsFile, or
                                                  --headerline) specifies types; They must be in the form of
                                                  '<colName>.<type>(<arg>)'. The type can be one of: auto, binary,
                                                  boolean, date, date_go, date_ms, date_oracle, decimal, double, int32,
                                                  int64, string. For each of the date types, the argument is a datetime
                                                  layout string. For the binary type, the argument can be one of:
                                                  base32, base64, hex. All other types take an empty argument. Only
                                                  valid for CSV and TSV imports. e.g. zipcode.string(),
                                                  thumbnail.binary(base64)
      /legacy                                     use the legacy extended JSON format
      /useArrayIndexFields                        indicates that field names may include array indexes that should be
                                                  used to construct arrays during import (e.g. foo.0,foo.1). Indexes
                                                  must start from 0 and increase sequentially (foo.1,foo.0 would fail).

ingest options:
      /drop                                       drop collection before inserting documents
      /ignoreBlanks                               ignore fields with empty values in CSV and TSV
      /maintainInsertionOrder                     insert the documents in the order of their appearance in the input
                                                  source. By default the insertions will be performed in an arbitrary
                                                  order. Setting this flag also enables the behavior of --stopOnError
                                                  and restricts NumInsertionWorkers to 1.
  /j, /numInsertionWorkers:<number>               number of insert operations to run concurrently
      /stopOnError                                halt after encountering any error during importing. By default,
                                                  mongoimport will attempt to continue through document validation and
                                                  DuplicateKey errors, but with this option enabled, the tool will stop
                                                  instead. A small number of documents may be inserted after
                                                  encountering an error even with this option enabled; use
                                                  --maintainInsertionOrder to halt immediately after an error
      /mode:[insert|upsert|merge|delete]          insert: insert only, skips matching documents. upsert: insert new
                                                  documents or replace existing documents. merge: insert new documents
                                                  or modify existing documents. delete: deletes matching documents
                                                  only. If upsert fields match more than one document, only one
                                                  document is deleted. (default: insert)
      /upsertFields:<field>[,<field>]*            comma-separated fields for the query part when --mode is set to
                                                  upsert or merge
      /writeConcern:<write-concern-specifier>     write concern options e.g. --writeConcern majority, --writeConcern
                                                  '{w: 3, wtimeout: 500, fsync: true, j: true}'
      /bypassDocumentValidation                   bypass document validation

标签:exe,--,mongodb,导出,导入,result,自带,options
From: https://www.cnblogs.com/bigron/p/17351140.html

相关文章

  • 一个将喜马拉雅音频导入小宇宙的工具
    这个喜马拉雅语音下载工具,能够帮助你下载喜马拉雅中的音频节目。如果你是会员,还能帮你下载会员节目。 下载后的音频文件,可以复制到小宇宙设备文件夹里面,这样我们就可以用小宇宙播放我们导入的音频文件啦。  工具下载:windows版https://jscs.lanzouw.com/i6pPL0tpwwmbma......
  • 记录一次nodejs操作mongodb报错
    记录一次使用Mongoose操作mongodb报错Mongoose查询回调函数报错BookModel.findOne({name:'Rust'},(err,data)=>{if(err){console.log('读取失败');return;}//输出data变量的值console.log(data);......
  • SQL的导入导出
    导出数据库是:cmdC:\ProgramFiles\MySQL\MySQLServer5.1\bin>mysqldump-uroot-p123456-h192.168.0.156stats>abcd.bak导入数据库是:C:\ProgramFiles\MySQL\MySQLServer5.1\bin>mysql-uroot-p123stats<abcd.bak导入导出表C:\DocumentsandSettings......
  • Python_9 py文件导入和路径处理
    一、查缺补漏Python中两个值交换可以直接交换如:a,b=b,a冒泡就是从小到大排序,因为越到后越大自动导包也适用于自己创建的模块关于正斜杠和反斜杠https://www.cnblogs.com/yangjian319/p/4801675.html 5. 内置异常汇总https://www.cnblogs.com/nmb-musen/p/108......
  • html css 怎么导入外部css
    在HTML文件中导入外部CSS样式表,可以使用<link>标签。具体步骤如下:创建一个样式表文件(通常以.css扩展名为后缀),并将所有的CSS样式规则存放在该文件中。在HTML文件中添加一个<link>标签,指定rel="stylesheet"属性和href属性,其中href属性值应该是样式表文件的U......
  • QGIS中导入dwg文件并使用GetWKT插件获取绘制元素WKT字符串以及QuickWKT插件实现WKT显
    场景QGIS在Windows上下载安装与建立空间数据库连接:在上面实现QGIS的安装之后,版本是3.26.3。业务需求:1、在dwg文件上绘制多边形区域,并获取绘制区域的wkt字符串。2、根据已知的wkt字符串,在dwg上显示。如果新建多边形图层参考如下QGIS怎样设置简体中文以及新建可编辑的多边形的图层:......
  • docker搭建mongodb及基本语法的使用
    一、介绍:概述:主使用docker安装mongodb的方法记录,mongo基本语法记录的整理,大神请绕道!优势:1.MongoDB提供高性能的数据持久性。对嵌入式数据模型的支持减少了数据库系统上的IO活动2.如动态模式、灵活的文档模型,适合json数据存储,适合海量数据存储使用场景:1.数据量大,读写操作频......
  • 2.自定义@Excel注解实现数据Excel形式导入导出
    https://zzpc.net/content/206150.html前言这几天在学习如何使用自定义注解实现Excel格式数据导入导出,参考的还是若依框架里面的代码,由于是初学,所以照猫画虎呗,但是难受的是需要复制并根据自己项目修改作者自定义的工具类以及导入这些工具类的依赖包。由于吃了这个苦,我决定把......
  • ruoyi导入导出Excel
    https://www.cnblogs.com/SjhCode/p/excel.htmlruoyi导入导出Excel导入导出excel:使用若依自带的工具ExcelUtil;(例子:SysUserController)导入之前需要生成一个excel模板给用户填写(前端通过接口获取模板名字,再调用下载接口common/download,进行下载);导入业务根据若依的SysUserService......
  • 我是不会运行你的代码吗?不,我是不会导入自己的数据!
    常常遇到有人问起看到分享的教程导入数据的方式是data(dune)等直接调用系统的数据,而自己怎么读入自己的数据呢?对于初学者来讲,这确实是个问题。如何准备数据、拿到正确格式的数据并导入后续的代码进行分析,是学习和应用过程中的第一个拦路虎。为什么教程会习惯使用内置数据?简单省事、......