diff options
Diffstat (limited to 'common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/lean/lean.js')
-rw-r--r-- | common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/lean/lean.js | 84 |
1 files changed, 84 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(); + }); +} |