需求介绍:将mongodb中的数据以文件的方式导出:json或cvs格式

mongo 提供了mongoexport的工具,可以实现将库中的数据以json或cvs的格式输出到文件中。mongoexport位于mongo安装位置中的bin/目录下。

mongoexport具体用法如下所示:

1. 使用help查看参数说明

E:\data
λ mongoexport --help
Usage:
mongoexport <options> Export data from MongoDB in CSV or JSON format. See http://docs.mongodb.org/manual/reference/program/mongoexport/ for more information. general options:
/help print usage
/version print the tool version and exit verbosity options:
/v, /verbose more detailed log output (include multiple
times for more verbosity, e.g. -vvvvv)
/quiet hide all log output connection options:
/h, /host: mongodb host to connect to
(setname/host1,host2 for replica sets)
/port: server port (can also use --host hostname:port) authentication options:
/u, /username: username for authentication
/p, /password: password for authentication
/authenticationDatabase: database that holds the user's credentials
/authenticationMechanism: authentication mechanism to use namespace options:
/d, /db: database to use
/c, /collection: collection to use output options:
/f, /fields: comma separated list of field names (required
for exporting CSV) e.g. -f "name,age"
/fieldFile: file with field names - 1 per line
/type: the output format, either json or csv
(defaults to 'json')
/o, /out: output file; if not specified, stdout is used
/jsonArray output to a JSON array rather than one object
per line
/pretty output JSON formatted to be human-readable querying options:
/q, /query: query filter, as a JSON string, e.g.,
'{x:{$gt:1}}'
/k, /slaveOk allow secondary reads if available (default
true)
/forceTableScan force a table scan (do not use $snapshot)
/skip: number of documents to skip
/limit: limit the number of documents to export
/sort: sort order, as a JSON string, e.g. '{x:1}'

2. 用例说明:

将info库中student的所有信息以json格式导出到student_json.dat数据文件中

mongoexport -h 127.0.0.1 -u root -p 12345 -d info -c student --type=json -o E:\data\student_json.dat

输出:

{
"id": 123,
"name": "张三",
"age": 12
}
{
"id": 124,
"name": "李四",
"age": 15
}

将info库中student的id,name信息以json格式导出到student_json.dat数据文件中,并且限定“行数”是1

mongoexport -h 127.0.0.1 -u root -p 12345 -d info -c student --type=json -f id,name --limit=1 -o E:\data\student_json.dat

输出:

{
"id": 1,
"name": "张三"
}

将info库中student的所有信息以cvs格式导出到student_cvs.dat数据文件中

mongoexport -h 127.0.0.1 -u root -p 12345 -d info -c student --type=cvs  -o E:\data\student_cvs.dat

输出:

123,"张三",12
124,"李四",15

将info库student“表”的name=张三的信息以cvs格式导出到student_cvs.dat数据文件中

mongoexport -h 127.0.0.1 -u root -p 12345 -d info -c student --type=cvs -q{"name":"张三"} -o E:\data\student_cvs.dat

输出:

123,"张三",12

注意:

a. --type=json 只是控制每一条“记录”是json格式,而整体的输出文件不是json 。如果想要控制整体的文件数据格式是json数组,则需要使用--jsonArray 参数控制

扩展:

导入工具mongoimport

Mongodb中的mongoimport工具可以把一个特定格式文件中的内容导入到指定的collection中。该工具可以导入JSON格式数据,也可以导入CSV格式数据。具体使用如下所示:

E:\data
λ mongoimport --help
Usage:
mongoimport <options> <file> Import CSV, TSV or JSON data into MongoDB. If no file is provided, mongoimport reads from stdin. See http://docs.mongodb.org/manual/reference/program/mongoimport/ for more information. general options:
/help print usage
/version print the tool version and exit verbosity options:
/v, /verbose more detailed log output (include multiple
times for more verbosity, e.g. -vvvvv)
/quiet hide all log output connection options:
/h, /host: mongodb host to connect to
(setname/host1,host2 for replica sets)
/port: server port (can also use --host hostname:port) authentication options:
/u, /username: username for authentication
/p, /password: password for authentication
/authenticationDatabase: database that holds the user's credentials
/authenticationMechanism: authentication mechanism to use namespace options:
/d, /db: database to use
/c, /collection: collection to use input options:
/f, /fields: comma separated list of field names, e.g. -f
name,age
/fieldFile: file with field names - 1 per line
/file: 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
/type: input format to import: json, csv, or tsv
(defaults to 'json') ingest options:
/drop drop collection before inserting documents
/ignoreBlanks ignore fields with empty values in CSV and TSV
/maintainInsertionOrder insert documents in the order of their
appearance in the input source
/j, /numInsertionWorkers: number of insert operations to run
concurrently (defaults to 1)
/stopOnError stop importing at first insert/upsert error
/upsert insert or update objects that already exist
/upsertFields: comma-separated fields for the query part of
the upsert
/writeConcern: write concern options e.g. --writeConcern
majority, --writeConcern '{w: 3, wtimeout:
500, fsync: true, j: true}' (defaults to
'majority')

参数说明:

-h:指明数据库宿主机的IP

-u:指明数据库的用户名

-p:指明数据库的密码

-d:指明数据库的名字

-c:指明collection的名字

-f:指明要导入那些列

示例:先删除students中的数据,并验证

> db.students.remove()
> db.students.find()
>
然后再导入上面导出的students.dat文件中的内容

mongoimport -d test -c students students.dat
connected to: 127.0.0.1
imported 9 objects

参数说明:

-d:指明数据库名,本例中为test

-c:指明collection名,本例中为students

students.dat:导入的文件名

查询students集合中的数据

> db.students.find()
{ "_id" : ObjectId("5031143350f2481577ea81e5"), "classid" : 1, "age" : 20, "name" : "kobe" }
{ "_id" : ObjectId("5031144a50f2481577ea81e6"), "classid" : 1, "age" : 23, "name" : "nash" }
{ "_id" : ObjectId("5031145a50f2481577ea81e7"), "classid" : 2, "age" : 18, "name" : "james" }
{ "_id" : ObjectId("5031146a50f2481577ea81e8"), "classid" : 2, "age" : 19, "name" : "wade" }
{ "_id" : ObjectId("5031147450f2481577ea81e9"), "classid" : 2, "age" : 19, "name" : "bosh" }
{ "_id" : ObjectId("5031148650f2481577ea81ea"), "classid" : 2, "age" : 25, "name" : "allen" }
{ "_id" : ObjectId("5031149b50f2481577ea81eb"), "classid" : 1, "age" : 19, "name" : "howard" }
{ "_id" : ObjectId("503114a750f2481577ea81ec"), "classid" : 1, "age" : 22, "name" : "paul" }
{ "_id" : ObjectId("503114cd50f2481577ea81ed"), "classid" : 2, "age" : 24, "name" : "shane" }
>

证明数据导入成功

上面演示的是导入JSON格式的文件中的内容,如果要导入CSV格式文件中的内容,则需要通过--type参数指定导入格式,具体如下所示:

先删除数据

> db.students.remove()
> db.students.find()
>

再导入之前导出的students_csv.dat文件

mongoimport -d test -c students --type csv --headerline --file students_csv.dat
connected to: 127.0.0.1
imported 10 objects

参数说明:

-type:指明要导入的文件格式

-headerline:指明第一行是列名,不需要导入

-file:指明要导入的文件

查询students集合,验证导入是否成功:

> db.students.find()
{ "_id" : ObjectId("503266029355c632cd118ad8"), "classid" : 1, "name" : "kobe", "age" : 20 }
{ "_id" : ObjectId("503266029355c632cd118ad9"), "classid" : 1, "name" : "nash", "age" : 23 }
{ "_id" : ObjectId("503266029355c632cd118ada"), "classid" : 2, "name" : "james", "age" : 18 }
{ "_id" : ObjectId("503266029355c632cd118adb"), "classid" : 2, "name" : "wade", "age" : 19 }
{ "_id" : ObjectId("503266029355c632cd118adc"), "classid" : 2, "name" : "bosh", "age" : 19 }
{ "_id" : ObjectId("503266029355c632cd118add"), "classid" : 2, "name" : "allen", "age" : 25 }
{ "_id" : ObjectId("503266029355c632cd118ade"), "classid" : 1, "name" : "howard", "age" : 19 }
{ "_id" : ObjectId("503266029355c632cd118adf"), "classid" : 1, "name" : "paul", "age" : 22 }
{ "_id" : ObjectId("503266029355c632cd118ae0"), "classid" : 2, "name" : "shane", "age" : 24 }
>

说明已经导入成功

Mongo的导出工具mongoexport介绍的更多相关文章

  1. Mongodb数据导出工具mongoexport和导入工具mongoimport介绍

    一.导出工具mongoexport Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件.可以通过参数指定导出的数据项,也可以根据指定的条件导 ...

  2. Mongodb数据导出工具mongoexport和导入工具mongoimport介绍(转)

    原文地址:http://chenzhou123520.iteye.com/blog/1641319 一.导出工具mongoexport Mongodb中的mongoexport工具可以把一个colle ...

  3. Mongodb数据导出工具mongoexport和导入工具mongoimport使用

    如图所示,两个工具位于mongodb安装目录的bin目录下 下面介绍一下两者的使用方法: 一.导出工具mongoexport Mongodb中的mongoexport工具可以把一个collection ...

  4. 用Python编写博客导出工具

    用Python编写博客导出工具 罗朝辉 (http://kesalin.github.io/) CC 许可,转载请注明出处   写在前面的话 我在 github 上用 octopress 搭建了个人博 ...

  5. Mysql导入导出工具Mysqldump和Source命令用法详解

    Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式( ...

  6. [转]Mysql导入导出工具Mysqldump和Source命令用法详解

    Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式( ...

  7. 2.3MySQL 自带工具使用介绍

    1.mysql 首先看看“-e, --execute=name”参数,这个参数是告诉mysql,我只要执行“-e”后面的某个命令,而不是要通过mysql 连接登录到MySQL Server 上面.此参 ...

  8. EXCEL导出工具类及调用

    一.Excel导出工具类代码 package com.qiyuan.util; import java.io.OutputStream; import java.io.UnsupportedEncod ...

  9. mongo导入导出命令

    1.导出工具:mongoexport     1.概念:         mongoDB中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件.可以通过参数指 ...

随机推荐

  1. CentOS 更新yum源

    公司买了一台刀片机服务器,安装的系统版本太低,导致yum源不合适,安装就会报错. 在网上找了好长时间,才发现是yum源的问题.   转载原文: 突然想起试试 Docker,在一台计算机上安装了 Cen ...

  2. 对于Maven管理的项目制定虚拟目录

    基于Maven管理的web项目结构: target目录是用来存放项目打包之后生成的文件的目录,此目录中的文件必须调用mvn clean package后才能生成, 如果把虚拟目录设置在此目录中,则每次 ...

  3. HDU 4336 Card Collector(容斥)

    题意:要收集n种卡片,每种卡片能收集到的概率位pi,求收集完这n种卡片的期望.其中sigma{pi} <=1; 思路:容斥原理.就是一加一减,那么如何算期望呢.如果用二进制表示,0表示未收集到, ...

  4. sql执行万条update语句优化

    几个月没有更新笔记了,最近遇到一个坑爹的问题,顺道记录一下.. 需求是这样的:一次性修改上万条数据库. 项目是用MVC+linq的. 本来想着用 直接where() 1 var latentCusto ...

  5. PHP获得header头进行分析

    学web的人都知道,要深刻的理解就一定要对HTTP协议有深刻的理解,这样你才能理解整个运行的流程,有些功能你才能理解应该 如何去实现,比如:仿盗链啊,定义IP后切换页面语种的版本啊,等等, 这里就来对 ...

  6. EnumWindows 使用

    转载自csdn:http://blog.csdn.net/hairi/article/details/548064   EnumWindows 用来列举屏幕上所有顶层窗口. MSDN原话: The E ...

  7. spring 的 PropertyPlaceholderConfigurer读取的属性怎么访问 (java访问方式,不是xml中的占位符哦)及此类的应用

    一.1.占位符的应用:(@Autowired注解方式,不需要建立set与get方法了,xml注入也不需要写了) http://www.cnblogs.com/susuyu/archive/2012/0 ...

  8. CSS Text文本格式

    Text Color 颜色属性被用来设置文字的颜色. 颜色是通过CSS最经常的指定: 十六进制值 - 如"#FF0000" 一个RGB值 - "RGB(255,0,0)& ...

  9. ScheduleThreadPoolExecutor源码分析

    ScheduleThreadPoolExecutor源码分析(一) Java中ScheduleThreadPoolExecutor主要用于执行延迟任务或者按照一定的频率执行任务.其中scheduleA ...

  10. UVA 10817 Headmaster's Headache(DP +状态压缩)

    Headmaster's Headache he headmaster of Spring Field School is considering employing some new teacher ...