diff options
Diffstat (limited to 'common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/lean')
3 files changed, 114 insertions, 0 deletions
diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/lean/lean.js b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/lean/lean.js new file mode 100644 index 0000000..763367f --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/lean/lean.js @@ -0,0 +1,84 @@ + +// import async to make control flow simplier +var async = require('async'); + +// import the rest of the normal stuff +var mongoose = require('../../lib'); + +require('./person.js')(); + +var Person = mongoose.model('Person'); + +// define some dummy data +var data = [ + { + name: 'bill', + age: 25, + birthday: new Date().setFullYear((new Date().getFullYear() - 25)), + gender: 'Male', + likes: ['movies', 'games', 'dogs'] + }, + { + name: 'mary', + age: 30, + birthday: new Date().setFullYear((new Date().getFullYear() - 30)), + gender: 'Female', + likes: ['movies', 'birds', 'cats'] + }, + { + name: 'bob', + age: 21, + birthday: new Date().setFullYear((new Date().getFullYear() - 21)), + gender: 'Male', + likes: ['tv', 'games', 'rabbits'] + }, + { + name: 'lilly', + age: 26, + birthday: new Date().setFullYear((new Date().getFullYear() - 26)), + gender: 'Female', + likes: ['books', 'cats', 'dogs'] + }, + { + name: 'alucard', + age: 1000, + birthday: new Date().setFullYear((new Date().getFullYear() - 1000)), + gender: 'Male', + likes: ['glasses', 'wine', 'the night'] + } +]; + + +mongoose.connect('mongodb://localhost/persons', function(err) { + if (err) throw err; + + // create all of the dummy people + async.each(data, function(item, cb) { + Person.create(item, cb); + }, function(err) { + if (err) { + // handle error + } + + // lean queries return just plain javascript objects, not + // MongooseDocuments. This makes them good for high performance read + // situations + + // when using .lean() the default is true, but you can explicitly set the + // value by passing in a boolean value. IE. .lean(false) + var q = Person.find({age: {$lt: 1000}}).sort('age').limit(2).lean(); + q.exec(function(err, results) { + if (err) throw err; + console.log('Are the results MongooseDocuments?: %s', results[0] instanceof mongoose.Document); + + console.log(results); + cleanup(); + }); + }); +}); + +function cleanup() { + Person.remove(function() { + mongoose.disconnect(); + }); +} diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/lean/package.json b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/lean/package.json new file mode 100644 index 0000000..6ee511d --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/lean/package.json @@ -0,0 +1,14 @@ +{ + "name": "lean-example", + "private": "true", + "version": "0.0.0", + "description": "deps for lean example", + "main": "lean.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "dependencies": { "async": "*" }, + "repository": "", + "author": "", + "license": "BSD" +} diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/lean/person.js b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/lean/person.js new file mode 100644 index 0000000..b0bd2ed --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/lean/person.js @@ -0,0 +1,16 @@ +// import the necessary modules +var mongoose = require('../../lib'); +var Schema = mongoose.Schema; + +// create an export function to encapsulate the model creation +module.exports = function() { + // define schema + var PersonSchema = new Schema({ + name: String, + age: Number, + birthday: Date, + gender: String, + likes: [String] + }); + mongoose.model('Person', PersonSchema); +}; |