mongoose-with-queries
v1.0.1
Published
Build your own domain specific language around your models using chainable mongoose queries.
Downloads
6
Keywords
Readme
Mongoose With Queries
Build your own domain specific language around your models using chainable mongoose queries.
Usage
npm install mongoose-with-queries
var withQueries = require('mongoose-with-queries');
// Define your model
var Product = mongoose.model('Product', new mongoose.Schema({
category: String,
quantity: Number,
price: Number
})
);
// Define your queries
withQueries(Product, {
category: function (query, category) {
return query.where('category').equals(category);
},
quantity: function (query, quantity) {
return query.where('quantity').equals(quantity);
},
isFruit: function (query) {
return query.where('category').equals('fruit');
},
isSoldOut: function (query) {
return query.quantity(0);
},
isAvailable: function (query) {
return query.where('quantity').gt(0);
},
isBargain: function (query) {
// Anything under $2.00
return query.where('price').lt(200);
}
});
// Use your queries
// Bakery products available for sale
// Product.find().where('category').equals('bakery').where('quantity').gt(0).exec()
Product.query.category('bakery').isAvailable().exec()
// Bargain produce we've already sold out of.
// Product.find().where('category').equals('fruit').where('quantity').equals(0).where('price').lt(200).exec()
Product.query.isSoldOut().isFruit().isBargain().exec()
Contributing
Please follow our Code of Conduct when contributing to this project.
We currently test against a local mongodb so make sure you have mongod running.
$ git clone https://github.com/goodeggs/mongoose-with-queries && cd mongoose-with-queries
$ npm install
$ npm test
Module scaffold generated by generator-goodeggs-npm.