@mohamedwael/mongo-seeder
v1.0.0
Published
Advanced MongoDB seeder CLI with schema and relationships
Readme
Mongo Seeder
Advanced CLI tool to generate fake data and seed MongoDB with:
- Custom schemas
- Relationships (refs)
- Embedded documents
- Arrays
- Auto dependency resolution
- Faker-powered data generation
Installation
npm install
npm linkUsage
mongo-seeder seed --config ./config.json --uri mongodb://localhost:27017/testdbConfig File Structure
{
"collections": {
"collectionName": {
"count": 10,
"schema": {}
}
}
}Schema Types
1. Basic Faker Fields
{
"name": "name",
"email": "email",
"age": "number"
}2. Relationships (References)
{
"userId": { "ref": "users" }
}✔ Automatically links documents using _id
✔ Order of collections does NOT matter
3. Embedded Objects
{
"profile": {
"age": "number",
"address": {
"city": "city",
"country": "country"
}
}
}4. Arrays
{
"tags": {
"type": "array",
"length": 3,
"of": "word"
}
}Full Example
{
"collections": {
"posts": {
"count": 20,
"schema": {
"title": "sentence",
"authorId": { "ref": "users" }
}
},
"users": {
"count": 10,
"schema": {
"name": "name",
"email": "email",
"profile": {
"age": "number",
"address": {
"city": "city",
"country": "country"
}
},
"tags": {
"type": "array",
"length": 3,
"of": "word"
}
}
}
}
}Available Faker Types
| Type | Description | | --------- | --------------- | | name | Full name | | firstName | First name | | lastName | Last name | | email | Email | | username | Username | | password | Password | | sentence | Random sentence | | paragraph | Paragraph | | word | Single word | | number | Integer | | float | Float | | boolean | true/false | | uuid | UUID | | date | Past date | | city | City name | | country | Country | | street | Street address | | company | Company name | | jobTitle | Job title | | phone | Phone number | | url | URL | | image | Image URL |
How It Works
- Reads config file
- Detects relationships (
ref) - Builds dependency graph
- Sorts collections automatically
- Generates fake data
- Inserts into MongoDB
Errors
Circular dependency
Circular dependency detectedMissing reference
Missing reference data: usersDevelopment
npm start