This example shows how to define import data in TypeScript files with model validation enabled. There are two collections defined: categories
and posts
.
Data import files are prepared to show multiple possibilities of TypeScript data definition. In some data import files there are used helper methods defined in helpers
directory.
In order to run this example, it's recommended to install the following tools:
- Docker (optional) - to run MongoDB and Mongo Seeding Docker Image
- NodeJS with NPM (optional) - to run JavaScript example
-
After cloning the repository, navigate to this directory.
-
Run MongoDB on your local machine on port 27017. The recommended way is to use Docker:
docker run --rm -p 27017:27017 mongo
-
Navigate to the
./example
directory. -
To install all needed dependencies of import data, run the following command:
npm install
In order to import the sample data, use one of Mongo Seeding tools. The following instructions will result in sample data import to testing
database. The database will be dropped before import.
To import data from TypeScript files, the application, that utilizes Mongo Seeding library has to have TypeScript execution support configured. This tutorial shows how to setup it properly.
-
Initialize a new Node.js project in this directory (folder, which contains this Readme file) with the command:
npm init -y
-
Create a new
index.js
file in the same directory with the following content:require('ts-node').register(); const path = require('path'); const { Seeder } = require('mongo-seeding'); const config = { database: { name: 'testing', }, dropDatabase: true, }; const seeder = new Seeder(config); const collections = seeder.readCollectionsFromPath( path.resolve('./example/data'), { extensions: ['js', 'json', 'ts'], transformers: [Seeder.Transformers.replaceDocumentIdWithUnderscoreId], }, ); seeder .import(collections) .then(() => { console.log('Success'); }) .catch(err => { console.log('Error', err); });
-
To install all required dependencies used in your
index.js
application, run the command:npm install mongo-seeding typescript ts-node --save
-
Turn on the debug output from
mongo-seeding
library and run the newly created app to import data:DEBUG=mongo-seeding node index.js
To see the full description of the JS library usage, read the Readme file of the Mongo Seeding.
Make sure that you have the Mongo Seeding CLI installed. Then, run the following command from this directory (folder, which contains this Readme file):
seed --drop-database --replace-id --db-name testing ./example/data
To see the full description of the CLI usage, read the Readme file of the Mongo Seeding CLI.
Execute the following command:
docker run --rm --network="host" -e DB_NAME=testing -e REPLACE_ID=true -e DROP_DATABASE=true -v /absolute/path/to/examples/import-data-ts/example/:/absolute/path/to/examples/import-data-ts/example/ -w /absolute/path/to/examples/import-data-ts/example/data pkosiec/mongo-seeding
Replace /absolute/path/to/
with your absolute path to this cloned repository.
To read more how to run the Docker image with all configuration parameters, read the Readme file of the Mongo Seeding Docker image.