zoukankan      html  css  js  c++  java
  • mongo数据库导入导出数据

    一、Mongodb导出工具mongoexport

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

    C:mongoin>mongoexport -help  
    options:  
      --help                  produce help message  
      -v [ --verbose ]        be more verbose (include multiple times for more  
                              verbosity e.g. -vvvvv)  
      -h [ --host ] arg       mongo host to connect to ( <set name>/s1,s2 for sets)  
      --port arg              server port. Can also use --host hostname:port  
      --ipv6                  enable IPv6 support (disabled by default)  
      -u [ --username ] arg   username  
      -p [ --password ] arg   password  
      --dbpath arg            directly access mongod database files in the given  
                              path, instead of connecting to a mongod  server -  
                              needs to lock the data directory, so cannot be used  
                              if a mongod is currently accessing the same path  
      --directoryperdb        if dbpath specified, each db is in a separate  
                              directory  
      -d [ --db ] arg         database to use  
      -c [ --collection ] arg collection to use (some commands)  
      -f [ --fields ] arg     comma separated list of field names e.g. -f name,age  
      --fieldFile arg         file with fields names - 1 per line  
      -q [ --query ] arg      query filter, as a JSON string  
      --csv                   export to csv instead of json  
      -o [ --out ] arg        output file; if not specified, stdout is used  
      --jsonArray             output to a json array rather than one object per  
                              Line 

    参数说明
    -h:指明数据库宿主机的IP
    -u:指明数据库的用户名
    -p:指明数据库的密码
    -d:指明数据库的名字
    -c:指明collection的名字
    -f:指明要导出那些列
    -o:指明到要导出的文件名
    -q:指明导出数据的过滤条件

    二、常用数据导出实例

    1.直接导出数据到文件中

    [root@localhost bin]# ./mongoexport -d my_mongodb -c user -o user.dat
    connected to: 127.0.0.1
    exported 2 records
    [root@localhost bin]# cat user.dat
    { "_id" : { "$oid" : "4f81a4a1779282ca68fd8a5a" }, "uid" : 2, "username" : "Jerry", "age" : 100 }
    { "_id" : { "$oid" : "4f844d1847d25a9ce5f120c4" }, "uid" : 1, "username" : "Tom", "age" : 25 }
    [root@localhost bin]#

    命令执行完后使用命令查看,会发现目录下生成了一个students.dat的文件

    参数说明

     -d 指明使用的库, 本例中为” my_mongodb”
     -c 指明要导出的表, 本例中为”user”
     -o 指明要导出的文件名, 本例中为”user.dat”
    从上面可以看到导出的方式使用的是JSON 的样式 

    2、将foo库中的表t1导出成json格式

    [root@localhost bin]# ./mongoexport -d foo -c t1 -o /data/t1.json   
    connected to: 127.0.0.1   
    exported 1 records   
    [root@localhost bin]# 

    导出成功后我们看一下/data/t1.json文件的样式

    root@localhost data]# more t1.json   
    { "_id" : { "$oid" : "4f927e2385b7a6814a0540a0" }, "age" : 2 }   
    [root@localhost data]# 

    3、导出为CSV格式的数据

    [root@localhost bin]# ./mongoexport -d foo -c t2 --csv -f age,name -o /data/t2.csv   
    connected to: 127.0.0.1   
    exported 1 records   
    [root@localhost bin]# 

    查看/data/t2.csv的导出结果

    [root@localhost data]# more t2.csv   
    age,name   
    1,"wwl"   
    [root@localhost data]# 

    三、Mongodb导入工具mongoexport

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

    具体使用如下

    [root@localhost mongodb]# ./bin/mongoimport --help 
    options: 
     --help         produce help message 
     -v [ --verbose ]    be more verbose (include multiple times for more  
                 verbosity e.g. -vvvvv) 
     --version        print the program's version and exit 
     -h [ --host ] arg    mongo host to connect to ( <set name>/s1,s2 for sets) 
     --port arg       server port. Can also use --host hostname:port 
     --ipv6         enable IPv6 support (disabled by default) 
     -u [ --username ] arg  username 
     -p [ --password ] arg  password 
     --dbpath arg      directly access mongod database files in the given  
                 path, instead of connecting to a mongod server -  
                 needs to lock the data directory, so cannot be used  
                 if a mongod is currently accessing the same path 
     --directoryperdb    if dbpath specified, each db is in a separate  
                 directory 
     --journal        enable journaling 
     -d [ --db ] arg     database to use 
     -c [ --collection ] arg collection to use (some commands) 
     -f [ --fields ] arg   comma separated list of field names e.g. -f name,age 
     --fieldFile arg     file with fields names - 1 per line 
     --ignoreBlanks     if given, empty fields in csv and tsv will be ignored 
     --type arg       type of file to import. default: json (json,csv,tsv) 
     --file arg       file to import from; if not specified stdin is used 
     --drop         drop collection first  
     --headerline      CSV,TSV only - use first line as headers 
     --upsert        insert or update objects that already exist 
     --upsertFields arg   comma-separated fields for the query part of the  
                 upsert. You should make sure this is indexed 
     --stopOnError      stop importing at first error rather than continuing 
     --jsonArray       load a json array, not one item per line. Currently  
                 limited to 4MB. 
    参数说明

    -h:指明数据库宿主机的IP
    -u:指明数据库的用户名
    -p:指明数据库的密码
    -d:指明数据库的名字
    -c:指明collection的名字
    -f:指明要导入那些列

    四、常用数据导入实例

    1、导入JSON 数据

    [root@localhost mongodb]# ./bin/mongoimport -d test -c students students.dat   
    connected to: 127.0.0.1  
    imported 9 objects  
    [root@localhost mongodb]#   

    参数说明
    -d:指明数据库名,本例中为test
    -c:指明collection名,本例中为students
    students.dat:导入的文件名

    2、导入CSV格式文件中的内容

    [root@localhost mongodb]# ./bin/mongoimport -d test -c students --type csv --headerline --file students_csv.dat  
    connected to: 127.0.0.1 
    imported 10 objects 
    [root@localhost mongodb]#  

    参数说明:
    -type:指明要导入的文件格式
    -headerline:指明第一行是列名,不需要导入
    -file:指明要导入的文件

    以上是windows系统下的操作,关于Mac系统下数据的导出如下:

    1. 首先,打开终端,找到mongodb的安装目录下的bin文件夹,比如我,在终端输入:

    cd /Users/wangpegnfei/Desktop/mongodb-osx-x86_64-2.4.6/bin

    2. 然后在输入:

    ./mongod

    3. 重新打开一个终端,先后输入下面两条命令,登录数据库

    cd /Users/wangpegnfei/Desktop/mongodb-osx-x86_64-2.4.6/bin
    ./mongo

    4. 再打开一个新的终端,输入如下命令:

    cd /Users/wangpegnfei/Desktop/mongodb-osx-x86_64-2.4.6/bin
    ./mongoexport -d 数据库名 -c 表名 --csv -f 要导出的字段名,每个字段名以逗号隔开 -o 具体地址(如果不加具体地址,则默认为导出到bin目录下)/要导出的文件名.csv

    例如:

    mongoexport -d ditie -c taibei --csv -f name,address -o E:/Data/taibei.csv

    来源于

    https://www.jb51.net/article/65923.html

    https://www.jianshu.com/p/af7b59ced458

  • 相关阅读:
    重新定位Excel Addin插件的方法
    VBA调用DOS程序两种方法
    Simulink Memory vs Unit Delay
    C#对象序列化与反序列化zz
    [leetcode]Sqrt(x) @ Python
    [leetcode]Sort Colors @ Python
    [leetcode]Pow(x, n) @ Python
    [leetcode]Edit Distance @ Python
    [leetcode]Rotate Image @ Python
    [leetcode]Length of Last Word @ Python
  • 原文地址:https://www.cnblogs.com/hankleo/p/10350068.html
Copyright © 2011-2022 走看看