mongoose-smart-query
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

mongoose-smart-query

npm version Testing

mongoose-smart-query toma como entrada un objeto (ejemplo: req.query) e interpreta las condiciones para poder realizar una consulta 'inteligente', de acuerdo al esquema definido en mongoose. Las consultas se las realiza totalmente con aggregate.

Options

  • All fields below are optional.
  • All the fields are of type string, except the defaultLimit field which is of type number
Key Description Default
protectedFields Fields that should not be included in the query results ''
defaultFields Fields included in the default query results '_id'
defaultSort Default sorting '-id'
defaultLimit Number of documents per query 20
fieldsForDefaultQuery What fields to look for when making a query ''
pageQueryName Key for pagination '$page'
limitQueryName Key to limit '$limit'
fieldsQueryName Key to get specific fields '$fields'
sortQueryName Key for sorting $sort
queryName Key for search '$q'
unwindName mongodb unwind documents '$unwind'

Methods

Example

This is a simple mongoose model for persons:

const PersonSchema = new mongoose.Schema({
  name: String,
  random: Number,
  birthday: Date,
  colours: [String],
  password: String,
  bestFriend: { type: mongoose.Types.ObjectId, ref: 'persons' },
})
PersonSchema.plugin(mongooseSmartQuery, {
  defaultFields: 'name',
  protectedFields: 'password',
  fieldsForDefaultQuery: 'name bestFriend.name',
})
const Persons = mongoose.model('persons', PersonSchema)

Package Sidebar

Install

npm i mongoose-smart-query

Weekly Downloads

13

Version

1.0.4

License

MIT

Unpacked Size

17.8 kB

Total Files

5

Last publish

Collaborators

  • mgyugcha