随笔-86  评论-33  文章-0  trackbacks-0

Import Export Tools

These tool just work with the raw data (the documents in the collection); they do not save, or load, the metadata like the defined indexes or (capped) collection properties. You will need to (re)create those yourself in a separate step, before loading that data. Vote here to change this.

mongoimport

This utility takes a single file that contains 1 JSON/CSV/TSV string per line and inserts it. You have to specify a database and a collection.

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 ("left,right" for pairs)
            -d [ --db ] arg         database to use
            -c [ --collection ] arg collection to use (some commands)
            -u [ --username ] arg   username
            -p [ --password ] arg   password
            --dbpath arg            directly access mongod data files in the given path,
            			    instead of connecting to a mongod instance - 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
            -f [ --fields ] arg     comma seperated 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
            

mongoexport

This utility takes a collection and exports to either JSON or CSV. You can specify a filter for the query, or a list of fields to output.

Neither JSON nor TSV/CSV can represent all data types. Please be careful not to lose or change data (types) when using this. For full fidelity please use mongodump.

If you want to output CSV, you have to specify the fields in the order you want them.

Example

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 ("left,right" for pairs)
            -d [ --db ] arg         database to use
            -c [ --collection ] arg collection to use (some commands)
            -u [ --username ] arg   username
            -p [ --password ] arg   password
            --dbpath arg            directly access mongod data files in the given path,
            			    instead of connecting to a mongod instance - 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
            -q [ --query ] arg      query filter, as a JSON string
            -f [ --fields ] arg     comma seperated list of field names e.g. -f name,age
            --csv                   export to csv instead of json
            -o [ --out ] arg        output file; if not specified, stdout is used
            

mongodump

This takes a database and outputs it in a binary representation. This is mostly used for doing hot backups of a database.

If you're using sharding and try to migrate data this way, this will dump shard configuration information and overwrite configurations upon restore.
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 ("left,right" for pairs)
            -d [ --db ] arg          database to use
            -c [ --collection ] arg  collection to use (some commands)
            -u [ --username ] arg    username
            -p [ --password ] arg    password
            --dbpath arg             directly access mongod data files in the given path,
            			     instead of connecting to a mongod instance - 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
            -o [ --out ] arg (=dump) output directory
            

Example: Dumping Everything

To dump all of the collections in all of the databases, run mongodump with just the --host:

$ ./mongodump --host prod.example.com
            connected to: prod.example.com
            all dbs
            DATABASE: log    to   dump/log
            log.errors to dump/log/errors.bson
            713 objects
            log.analytics to dump/log/analytics.bson
            234810 objects
            DATABASE: blog    to    dump/blog
            blog.posts to dump/log/blog.posts.bson
            59 objects
            DATABASE: admin    to    dump/admin
            

You'll then have a folder called "dump" in your current directory.

If you're running mongod locally on the default port, you can just do:

$ ./mongodump
            

Example: Dumping a Single Collection

If we just want to dump a single collection, we can specify it and get a single .bson file.

$ ./mongodump --db blog --collection posts
            connected to: 127.0.0.1
            DATABASE: blog        to     dump/blog
            blog.posts to dump/blog/posts.bson
            59 objects
            

mongorestore

This takes the output from mongodump and restores it.

usage: ./mongorestore [options] [directory or filename to restore from]
            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 ("left,right" for pairs)
            -d [ --db ] arg         database to use
            -c [ --collection ] arg collection to use (some commands)
            -u [ --username ] arg   username
            -p [ --password ] arg   password
            --dbpath arg            directly access mongod data files in the given path,
            				    instead of connecting to a mongod instance - 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
            --drop                  drop each collection before import
            --objcheck              validate object before inserting
posted on 2010-07-05 17:52 Derek.Guo 阅读(1170) 评论(0)  编辑  收藏 所属分类: NoSqlDB

只有注册用户登录后才能发表评论。


网站导航:
 
MSN:envoydada@hotmail.com QQ:34935442