// 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);
|
|
};
|