1.3.2 • Published 4 years ago
query-builder-redis v1.3.2
query-builder-redis
lib query data through query builder by mongoose and redis
Installation
Install NPM
$ npm i query-builder-redis --save
Example import
Use query builder redis
const { queryBuilderRedis } = require('query-builder');
or
const queryBuilderRedis = require('query-builder').queryBuilderRedis;
Use query builder mongoose
const { queryBuilder } = require('query-builder');
or
const queryBuilderRedis = require('query-builder').queryBuilder;
Config on env file
REDIS_PORT=6379 (port redis)
REDIS_HOST=redis (ip host)
REDIS_DB=0
Config on docker (optional)
redis:
image: redis:5.0.3
restart: always
ports:
- 6379:6379
volumes:
- redis-data:/data
volumes:
redis-data:
driver: local
Example use
const res = await queryBuilderRedis.getQuery(model, Query, 60);
or
const res = await queryBuilder.getQuery(model, Query);
Support
Arguments | Query | Description | Exp |
---|---|---|---|
getList | { find: {} , offset: 1 ,size: 10 ,sort: { updateAt: 1 } } | Can use select = {Object} and String and populate = {Object} | getList(model, query,select, exp) exp = int |
getQuery | {Object} | Can use select = {Object} and String and populate = {Object} | getQuery(model, query, select, populate, exp) exp = int |
getById | {Object} | Can use populate = {Object} | getById(model, query, populate, exp) exp = int |
getOne | {Object} | Can use populate = {Object} | getOne(model, query, populate, exp) exp = int |
getAllSoftDeleteOnly | {Object} | Can use populate = {Object} get only data status = true | getAllSoftDeleteOnly(model, query, populate, exp) exp = int |
getOneSoftDeleteOnly | {Object} | Can use populate = {Object} get only data status = true | getOneSoftDeleteOnly(model, query, populate, exp) exp = int |
getOneSoftDelete | {Object} | Can use populate = {Object} get all data | getOneSoftDelete(model, query, populate, exp) exp = int |
getAllSoftDelete | { find: {} , sort: { updateAt: 1 } } | Can use select = {Object} and can use populate = {Object} get all data | getAllSoftDelete(model, query, select, populate, exp) exp = int |
create | {Object} | ... | create(model, data) |
update | id , {Object} | func(model, id, {data}) | update(model, id, data) |
destroy | id | ... | destroy(model, id) |
softDelete | id | Change status deleted to true | softDelete(model, id) |
restore | id | Change status deleted to false after soft delete | restore(model, id) |
getTotal | {Object} | Count documents | getTotal(model, query, exp) exp = int |
destroyMany | {Object} | ... | destroyMany(model, data) |
getPagination | {Object} , page = 1 , perpage = 10 | Get pagination func({data}, page, perpage) | getPagination(model, query, page, perpage, exp) exp = int |
aggregateQuery | {Object} | Can use script aggregate mongoose | aggregateQuery(model, data, exp) exp = int |
clearKeyRedis | Clear key redis all | clearKeyRedis() | |
getKeyRedis | Get all key redis | getKeyRedis() | |
clearKeyRedisById | key | Clear redis by key | clearKeyRedisById(id) |
Mock Test Jest
jest.mock('handy-redis', () => ({
createHandyClient: jest.fn(() => ({
get: jest.fn(),
set: jest.fn(),
del: jest.fn(),
keys: jest.fn()
}))
}));