@conpago/mongo-seeding-cli
v4.1.0
Published
The ultimate command line tool for populating your MongoDB database.
Readme

Mongo Seeding CLI
The ultimate CLI tool for populating your MongoDB database :rocket:
Define MongoDB documents in JSON, JavaScript or even TypeScript file(s). Import them with command line interface.
Installation
To install the app, run the following command:
npm install -g mongo-seeding-cliUsage
Follow the tutorial to define documents and collections to import.
In order to seed your database with data from current directory using default configuration, run the following command:
seedYou can specify custom settings with command line parameters. The following example imports data from
./example/datadirectory using MongoDB connection URImongodb://127.0.0.1:27017/mydbwith option to drop database before import:seed -u 'mongodb://127.0.0.1:27017/mydb' --drop-database ./example/dataYou can also use environmental variables to configure the CLI. For example:
DB_URI='mongodb://127.0.0.1:27017/mydb' DROP_DATABASE=true seed ./example/dataFull configuration options are described in Configuration section.
Configuration
You can configure data import with command line parameters or environmental variables.
Note: Command line parameters have always a higher priority over environmental variables.
Command line parameters
You can use the following parameters while using seed tool:
| Name | Default Value | Description |
|-------------|----------------|---------------------|
| {PATH} | current directory | Path to directory containing import data |
| --db-uri {URI} or -u {URI} | undefined | If defined, the URI will be used for establishing connection to database, ignoring values defined via other db-* parameters (e.g. db-name, db-host, etc.)
| --db-protocol {DB_PROTOCOL} | mongodb | MongoDB database protocol |
| --db-host {DB_HOST} | 127.0.0.1 | MongoDB database host |
| --db-port {DB_PORT} | 27017 | MongoDB database port |
| --db-name {DB_NAME} | database | Name of the database |
| --db-username {DB_USERNAME} | undefined | Username for connecting with database that requires authentication |
| --db-password {DB_PASSWORD} | undefined | Password for connecting with database that requires authentication |
| --db-options | undefined | MongoDB connection options in a form of multiple {key}={value} values, separated by semicolon. For example: ssl=true;maxPoolSize=50 |
| --drop-database | false | Drops entire database before data import |
| --drop-collections | false | Drops every collection which is being imported |
| --remove-all-documents | false | Delete all documents from every collection that is being imported |
| --replace-id | false | Replaces id property with _id for every document during data import |
| --set-timestamps | false | Sets createdAt and updatedAt timestamps for every document during data import |
| --reconnect-timeout | 10000 | Maximum time in milliseconds of waiting for successful MongoDB connection |
| --ejson-parse-canonical-mode | false | Enables EJSON Canonical Mode for all parsed .json files. By default the EJSON Relaxed mode is enabled. |
| --transpile-only | false | Disables type checking on TypeScript files import. This option vastly improves performance of TypeScript data import |
| --silent or -s | false | Disables printing logging of Mongo Seeding status to standard output |
| --help or -h | n/a | Help
Environmental variables
You can use the following environmental variables while using seed tool:
| Name | Default Value | Description |
|-------------|----------------|---------------------|
| DB_URI | undefined | If defined, the URI is used for establishing connection to database, ignoring values given in DB_* environmental variables (e.g. DB_HOST, DB_PORT, etc.).
| DB_HOST | 127.0.0.1 | MongoDB database host |
| DB_PORT | 27017 | MongoDB database port |
| DB_NAME | database | Name of the database |
| DB_USERNAME | undefined | Username for connecting with database that requires authentication |
| DB_PASSWORD | undefined | Password for connecting with database that requires authentication |
| DB_OPTIONS | undefined | MongoDB connection options in a form of multiple {key}={value} values, separated by semicolon. For example: ssl=true;maxPoolSize=50. |
| DROP_DATABASE | false | Drops entire database before data import |
| DROP_COLLECTIONS | false | Drops every collection which is being imported |
| REMOVE_ALL_DOCUMENTS | false | Delete all documents from every collection that is being imported |
| REPLACE_ID | false | Replaces id property with _id for every document during import; useful for ORMs |
| SET_TIMESTAMPS | false | Sets createdAt and updatedAt timestamps for every document during data import |
| RECONNECT_TIMEOUT | 10000 | Maximum time in milliseconds of waiting for successful MongoDB connection |
| EJSON_PARSE_CANONICAL_MODE | false | Enables EJSON Canonical Mode for all parsed .json files. By default the EJSON Relaxed mode is enabled. |
| TRANSPILE_ONLY | false | Disables type checking on TypeScript files import. This option vastly improves performance of TypeScript data import |
| SILENT | false | Disables printing logging of Mongo Seeding status to standard output |
