npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

btrz-mongo-factory

v4.3.0

Published

"A factory to create data in a mongoDb using chance and Json-Schema"

Downloads

295

Readme

btrz-mongo-factory

Factory to create data in mongodb from a json-schema with the ability to override values.

Runtimes supported

io.js >= 1.0.3 node v0.11.x with the --harmony flag

Usage

Add the module to your package.json directly or just run

npm install btrz-mongo-factory --save

You need to create fixture files. Each file can contain more than one fixture.Fixtures define an object using Json-Schema.

We took a dependency on json-schema-faker to auto-generate objects based on those schemas and save to the db. Given you have a fixture named "user", you can create and save a an object with the user schema into a MongoDb collection by the name of user with one call.

let options = {
    fixtures: `${__dirname}/fixtures`,
    "db": {
        "options": {
            "database": "btrzMongoFactory",
            "username": "",
            "password": ""
        },
        "uris": [
            "127.0.0.1:27017"
        ]
    }
};
let factory = new MongoFactory(options);
factory.create("user");

.create()

You can create a single user with random values calling the create method with the fixture name.

factory.create("user");

You can override one or more values for the object given an options literal with the desired values to the create method of the factory.

factory.create("user", {name: "John Smith"});

The user will be create with the name: John Smith.

If your schema have $ref you can pass that as the third parameter. (Leave the second parameter empty if you don't want to override anything);

// addressSchema is another schema
factory.create("user", {}, addressSchema);

You can create multiple users at once using the createList methods.

factory.createList("user", 3);

This will create 3 records in mongo for the user collection. They will all be different.

Of course, you can override values on those objects. Notice that the override will be applied to all the records.

Ex: We want to make sure all user(s) are "active".

factory.createList("user", 4, {status: "active"});

This will create 4 users and they all will be active.

You can clean up the db calling the clearAll method.

This method will remove all objects created by the instance.

factory.clearAll();

Fixtures and schemas