diff options
Diffstat (limited to 'common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/querybuilder')
3 files changed, 108 insertions, 0 deletions
diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/querybuilder/package.json b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/querybuilder/package.json new file mode 100644 index 0000000..1a3450a --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/querybuilder/package.json @@ -0,0 +1,14 @@ +{ + "name": "query-builder-example", + "private": "true", + "version": "0.0.0", + "description": "deps for query builder example", + "main": "querybuilder.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/querybuilder/person.js b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/querybuilder/person.js new file mode 100644 index 0000000..40e2bf1 --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/querybuilder/person.js @@ -0,0 +1,15 @@ + +// 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 + }); + mongoose.model('Person', PersonSchema); +}; diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/querybuilder/querybuilder.js b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/querybuilder/querybuilder.js new file mode 100644 index 0000000..6f8645b --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/querybuilder/querybuilder.js @@ -0,0 +1,79 @@ + +// 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)) + }, + { + name: 'mary', + age: 30, + birthday: new Date().setFullYear((new Date().getFullYear() - 30)) + }, + { + name: 'bob', + age: 21, + birthday: new Date().setFullYear((new Date().getFullYear() - 21)) + }, + { + name: 'lilly', + age: 26, + birthday: new Date().setFullYear((new Date().getFullYear() - 26)) + }, + { + name: 'alucard', + age: 1000, + birthday: new Date().setFullYear((new Date().getFullYear() - 1000)) + } +]; + + +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) throw err; + + // when querying data, instead of providing a callback, you can instead + // leave that off and get a query object returned + var query = Person.find({age: {$lt: 1000}}); + + // this allows you to continue applying modifiers to it + query.sort('birthday'); + query.select('name'); + + // you can chain them together as well + // a full list of methods can be found: + // http://mongoosejs.com/docs/api.html#query-js + query.where('age').gt(21); + + // finally, when ready to execute the query, call the exec() function + query.exec(function(err, results) { + if (err) throw err; + + console.log(results); + + cleanup(); + }); + }); +}); + +function cleanup() { + Person.remove(function() { + mongoose.disconnect(); + }); +} |