Simple add ons for mongoose
Mongoose simple plugin adding some handy functions.
npm install supergoose
Use mongoose's plugin method to extend your models with supergoose
var supergoose = require('supergoose')
var ClickSchema = new Schema({ ... });
ClickSchema.plugin(supergoose, [options]);
var Click = mongoose.model('Click', ClickSchema)
Arguments
Valid Options
Adds find or create functionality to mongoose models. This is handy for libraries like passport.js which require it
Click.findOrCreate({ip: '127.0.0.1'}, function(err, doc) {});
Click.findOrCreate({ip: '127.0.0.1'}, {browser: 'Chrome'}, function(err, click) {})
Arguments
Valid Options
Parses the complex validation errors return from mongoose into a simple array of messages to be displayed as flash messages or something similar
var supergoose = require('supergoose')
var ClickSchema = new Schema({ip: {type: String, required: true}});
Click.plugin(supergoose, {messages: {'required': '%s is a required field'}});
var Click = mongoose.model('Click', ClickSchema);
The Click model now has an errors static method
Click.create({}, function(err, click) {
if(err) {
Click.errors(err, function(messages) {
console.log(messages);
// outputs ['ip is a required field']
})
}
});
Arguments
Arguments
Returns
When a relationship is created, it adds a path that refers to the related model on the schema that creates it. The relationship object has one property:
var supergoose = require('supergoose')
var mongoose = require('mongoose')
var ClickSchema = new Schema({ip: {type: String, required: true}, _user: {type: ObjectId}});
var UserSchema = new Schema({name: String})
UserSchema.plugin(supergoose, {instance: mongoose});
UserSchema.parentOf('Click', 'clickCollection').enforceWith('_user')
Arguments
Valid Options
MIT License