diff options
Diffstat (limited to 'common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/geospatial/person.js')
-rw-r--r-- | common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/geospatial/person.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/geospatial/person.js b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/geospatial/person.js new file mode 100644 index 0000000..e816637 --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/geospatial/person.js @@ -0,0 +1,27 @@ +// 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], + // define the geospatial field + loc: {type: [Number], index: '2d'} + }); + + // define a method to find the closest person + PersonSchema.methods.findClosest = function(cb) { + return this.model('Person').find({ + loc: {$nearSphere: this.loc}, + name: {$ne: this.name} + }).limit(1).exec(cb); + }; + + mongoose.model('Person', PersonSchema); +}; |