diff options
Diffstat (limited to 'common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/schema/schema.js')
-rw-r--r-- | common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/schema/schema.js | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/schema/schema.js b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/schema/schema.js deleted file mode 100644 index 5bc99ae..0000000 --- a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/schema/schema.js +++ /dev/null @@ -1,119 +0,0 @@ -/** - * Module dependencies. - */ - -var mongoose = require('../../lib'), - Schema = mongoose.Schema; - -/** - * Schema definition - */ - -// recursive embedded-document schema - -var Comment = new Schema(); - -Comment.add({ - title: { - type: String, - index: true - }, - date: Date, - body: String, - comments: [Comment] -}); - -var BlogPost = new Schema({ - title: { - type: String, - index: true - }, - slug: { - type: String, - lowercase: true, - trim: true - }, - date: Date, - buf: Buffer, - comments: [Comment], - creator: Schema.ObjectId -}); - -var Person = new Schema({ - name: { - first: String, - last: String - }, - email: { - type: String, - required: true, - index: { - unique: true, - sparse: true - } - }, - alive: Boolean -}); - -/** - * Accessing a specific schema type by key - */ - -BlogPost.path('date') -.default(function() { - return new Date(); -}) -.set(function(v) { - return v === 'now' ? new Date() : v; -}); - -/** - * Pre hook. - */ - -BlogPost.pre('save', function(next, done) { - /* global emailAuthor */ - emailAuthor(done); // some async function - next(); -}); - -/** - * Methods - */ - -BlogPost.methods.findCreator = function(callback) { - return this.db.model('Person').findById(this.creator, callback); -}; - -BlogPost.statics.findByTitle = function(title, callback) { - return this.find({title: title}, callback); -}; - -BlogPost.methods.expressiveQuery = function(creator, date, callback) { - return this.find('creator', creator).where('date').gte(date).run(callback); -}; - -/** - * Plugins - */ - -function slugGenerator(options) { - options = options || {}; - var key = options.key || 'title'; - - return function slugGenerator(schema) { - schema.path(key).set(function(v) { - this.slug = v.toLowerCase().replace(/[^a-z0-9]/g, '').replace(/-+/g, ''); - return v; - }); - }; -} - -BlogPost.plugin(slugGenerator()); - -/** - * Define model. - */ - -mongoose.model('BlogPost', BlogPost); -mongoose.model('Person', Person); |