Skip to content

Package to seed multiple MongoDB schema documents asynchronously

License

Notifications You must be signed in to change notification settings

achamwada/async-mongodb-seeder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

async-mongodb-seeder

🔍 Overview

async-mongodb-seeder is a simple and lightweight wrapper on faker.js that allows for multiple async mongodb seeding to make the development process easier and quicker

⏳ Installation

$ npm i async-mongodb-seeder

👋 Getting started

Learn by example? Check the sample app out.

1. Setting up seed

Call the seed with a array of jobs

import seed from 'async-mongodb-seeder'
import job from './jobs'

let results
seed([job])
  .then(res => {
    results = res
  })
  .catch(e => console.log(e))
  .finally(async () => {
    console.log('Finally results ===>', results)
  })
import Todo from './models/Todo'

const schemaOperationOptions = [
  {
    name: 'lorem',
    func: 'sentence',
  },
  {
    name: 'image',
    func: 'imageUrl',
  },
  {
    name: 'random',
    func: 'boolean',
  },
]

const schemaProps = {
  title: null,
  img: null,
  completed: null,
}

const job = {
  total: 10,
  schemaProps,
  schemaOperationOptions,
  MongoSchema: Todo,
}

3. MongoDB model

Here you need to create a mongoDB model, below is an example

import { Schema, model } from 'mongoose'

const TodoSchema = new Schema(
  {
    title: String,
    img: {
      type: String,
      default:
        'https://images.unsplash.com/photo-1540350394557-8d14678e7f91?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2089&q=80',
    },
    completed: {
      type: Boolean,
      default: false,
    },
  },
  {
    timestamps: true,
  },
)

export default model('todo', TodoSchema)

💡 Contributing

This package is still early doors. Please do get involved, feel free to critique it, offer solutions that can change its approach slightly, or request examples on how you want to use it. Spotted a bug, need something adding? Raise an issue. Pull requests welcome. 👌

🔑 License

MIT

About

Package to seed multiple MongoDB schema documents asynchronously

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published