mirror of
https://github.com/atlanticbiomedical/biomedjs.git
synced 2025-07-02 00:47:26 -04:00
29 lines
719 B
JavaScript
29 lines
719 B
JavaScript
![]() |
|
||
|
// 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);
|
||
|
};
|