0.1.16 • Published 8 years ago

mongoose-distance v0.1.16

Weekly downloads
1
License
MIT
Repository
github
Last release
8 years ago

mongoose-distance

Description

Mongoose distance is a collection of Schema values for build a recommendation system in base of Mongoose. That order the different response document by distance between a session and product coordinates.

Installation

npm install mongoose-distance

Usage

There are two instance to insert the plugin, one for products and other for session:

//product.js
var mongoose = require('mongoose')
var distance = require('mongoose-distance')

var ProductSchema = new mongoose.Schema({
  name:String
  value:Integer
})

ProductSchema.plugin(distance.coordinatePlugin, {})

module.exports = mongoose.model('Product', ProductSchema)
//session.js
var mongoose = require('mongoose')
var distance = require('mongoose-distance')

var SessionSchema = new mongoose.Schema({
  hash:String
})

SessionSchema.plugin(distance.coordinatePlugin, {})


module.exports = mongoose.model('Session', SessionSchema)

Now, we have coordinates documents, now we add out api distance methods. In case of Express router:

//api.js
var express = require('express')
var mongoose = require('mongoose')
var distance = require('mongoose-distance')

var router = express.Router()

// Here we need to connect mongoose with the database
// MAGIC!

var Product = require('./product')
var Session = require('./session')


// Order by minor distance
router.route('/products/')
      .get(function (req, res) {
        var session = new Session({name: 'session2'})
        session.x = 100
        session.save(function (err) {
          if (err) {
            console.log(err)
          } else {
            Product.find({}, function (err, products) {
              if (err) {
                console.log(err)
              } else {
                res.json(distance.order(products, session))
              }
            })
          }
        })
      })

module.exports = router
0.1.16

8 years ago

0.1.15

8 years ago

0.1.14

8 years ago

0.1.13

8 years ago

0.1.12

8 years ago

0.1.11

8 years ago

0.1.9

8 years ago

0.1.10

8 years ago

0.1.8

8 years ago

0.1.7

8 years ago

0.1.6

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago