The ultimate CLI tool for populating your MongoDB database 🚀
Define MongoDB documents in JSON, JavaScript or even TypeScript file(s). Import them with command line interface.
To install the app, run the following command:
npm install -g mongo-seeding-cli
-
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:
seed
-
You can specify custom settings with command line parameters. The following example imports data from
./example/data
directory using MongoDB connection URImongodb://127.0.0.1:27017/mydb
with option to drop database before import:seed -u 'mongodb://127.0.0.1:27017/mydb' --drop-database ./example/data
You 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/data
Full configuration options are described in Configuration section.
You can configure data import with command line parameters or environmental variables.
Note: Command line parameters have always a higher priority over environmental variables.
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 |
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 |