smc-mongoose-query-builder-helper
v1.0.5
Published
Query builder helper for mongoose
Downloads
828
Maintainers
Readme
SMC Mongoose Query Builder Helper
SMC Mongoose Query Builder Helper is a simple wrapper for create mongoose queries for retrieve data from your mongoose collection(s) as you wish.
You can query your collections by following few small steps.
- Create an empty query first
- Append your initial query by adding conditions one by one
- Pass query into
mongoose.model.find()
/mongoose.model.findOne()
Installation
Install the smc-mongoose-query-builder-helper
as follows
$ npm install smc-mongoose-query-builder-helper --save
Usage
import queryBuilder from 'smc-mongoose-query-builder-helper';
let query = {};
// If you want to find for a mongoose ObjectId. eg: the department
// list is stores in departments collection and that department that
// particular person working is stored in a variable called department
// as an ObjectId which refers to departments collection
query = queryBuilder.objectIdMatcher(query, 'department', req.query.department);
// If you want to match an exact value. eg: the age of a person
query = queryBuilder.valueMatcher(query, 'age', req.query.age);
// If you want to match a pattern. eg: search for a name by providing
// one or two letters of that name.
query = queryBuilder.patternMatcher(query, 'name', req.query.name);
// If you want to find an opposite case of above patternMatcher.
// eg: you saved account status as a string in collection, and you want
// to find all users which are not same as a given state (say you want
// to find all non deleted users)
query = queryBuilder.patternUnMatcher(query, 'status', req.query.status);
// If you want to check whether your data values is one of among given set
// eg: you have set of job roles for all employees (say there are 10),
// and you want to find who are playing managerial role (say there are 3)
const managerialRoles = ['senior_manager', 'manager', 'managerial_executive'];
query = queryBuilder.arrayElementMatcher(query, 'user_role', managerialRoles);
// If you want to find a numeric field that contains a given number
eg: you want to find users whose phone numbers contains '1234'
query = queryBuilder.numberPatternMatcher(query, 'phone_number', 1234);
// For further query buildings,
// queryBuilder.orOperator(query, valuesArray); and
// queryBuilder.andOperator(query, valuesArray); methods also provided
Dependencies
Dillinger is currently extended with the following plugins. Instructions on how to use them in your own application are linked below.
| package | README | | ------ | ------ | | mongoose | https://github.com/Automattic/mongoose/blob/master/README.md |
License
ISC
A Free Software, Enjoy it!