find-or-create-mongoose

0.1.2 • Public • Published

Mongoose findOrCreate plugin CircleCI

A findOrCreate plugin that's atomic. A necessary characteristic for use in scaled, distributed systems. Achieved by reducing the findOrCreate determination to a single mongo operation.

How To Use

You can set the plugin on the mongoose instance:

// app.js
const mongoose = require('mongoose');
const findOrCreate = requir ('find-or-create-mongoose');
mongoose.plugin(findOrCreate);

Or on individual schemas:

// people.model.js

const findOrCreate = require('find-or-create-mongoose');

const schema = new mongoose.Schema({
  name: { type: String },
  age: { type: Number }
});

schema.plugin(findOrCreate);

module.exports = mongoose.model('People', schema, 'people');

Then use it ...

// people.controller.js

const findBy = { name: 'John' };
const onCreate = { name: 'John', age: 29 };

const result = await model.findOrCreate(findBy, onCreate);

/*
 * result === {
 *	writeResult: 'create' / 'find',
 *	document: { THE_MONGO_RECORD }
 * }
**/

/find-or-create-mongoose/

    Package Sidebar

    Install

    npm i find-or-create-mongoose

    Weekly Downloads

    7

    Version

    0.1.2

    License

    ISC

    Unpacked Size

    4.23 kB

    Total Files

    4

    Last publish

    Collaborators

    • samsmith453