
Security News
ECMAScript 2025 Finalized with Iterator Helpers, Set Methods, RegExp.escape, and More
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
@hsa-technologies-00/hsa-query-builder
Advanced tools
MongoDB query builder module for hsa-technologies-00
A powerful and flexible MongoDB query builder for Mongoose, designed to simplify the creation of complex queries. This package supports advanced filtering, searching, pagination, sorting, and more, with full TypeScript support.
$gt
, $lt
, $in
, $regex
, and more.customer.address.city
).Install the package using npm:
npm install @hsa-technologies-00/hsa-query-builder
Or using yarn:
yarn add @hsa-technologies-00/hsa-query-builder
import { MongoQuery } from '@hsa-technologies-00/hsa-query-builder';
const queryParams = {
search: 'John',
age_gt: 25,
'customer.address.city': 'New York',
page: 2,
limit: 20,
select: 'name,age',
sort: 'age,-name',
};
const filter = new MongoQuery(queryParams, {
searchFields: ['name', 'email'],
}).build();
const query = filter.getFilterQuery();
const options = filter.getQueryOptions();
console.log('Filter Query:', query);
console.log('Query Options:', options);
Filter Query: {
$or: [
{ name: { $regex: 'John', $options: 'i' } },
{ email: { $regex: 'John', $options: 'i' } }
],
age: { $gt: 25 },
customer: { address: { city: 'New York' } }
}
Query Options: {
page: 2,
limit: 20,
select: 'name age',
sort: 'age -name'
}
MongoQuery
new MongoQuery(queryParams: QueryParams, options?: MongoQueryOptions)
queryParams
: An object containing query parameters (e.g., search
, age_gt
, page
, limit
, etc.).options
: Optional configuration object with the following properties:
searchFields
: An array of fields to search (e.g., ["name", "email"]
).build()
: Builds the filter query and query options.getFilterQuery()
: Returns the MongoDB filter query.getQueryOptions()
: Returns the query options (e.g., page
, limit
, select
, sort
).The following MongoDB operators are supported:
Operator | MongoDB Equivalent | Example Usage |
---|---|---|
or | $or | { age_or: [20, 25] } |
gt | $gt | { age_gt: 25 } |
gte | $gte | { age_gte: 25 } |
lt | $lt | { age_lt: 30 } |
lte | $lte | { age_lte: 30 } |
in | $in | { age_in: [20, 25] } |
nin | $nin | { age_nin: [20, 25]} |
ne | $ne | { age_ne: 25 } |
equals | $eq | { age_equals: 25 } |
regex | $regex | { name_regex: "John"} |
elemMatch | $elemMatch | { tags_elemMatch: { $in: ["tech"] } } |
all | $all | { tags_all: ["tech", "mongodb"] } |
You can filter nested objects using dot notation. For example:
const queryParams = {
'customer.address.city': 'New York',
};
This will generate the following MongoDB query:
{
customer: {
address: {
city: 'New York';
}
}
}
To perform a case-insensitive search across multiple fields, use the search
parameter and specify the searchFields
option:
const queryParams = {
search: 'John',
};
const filter = new MongoQuery(queryParams, {
searchFields: ['name', 'email'],
}).build();
This will generate the following MongoDB query:
{
$or: [{ name: { $regex: 'John', $options: 'i' } }, { email: { $regex: 'John', $options: 'i' } }];
}
The following query parameters are supported for pagination and sorting:
page
: The page number (default: 1
).limit
: The number of items per page (default: 10
).select
: Fields to include or exclude (e.g., name,age
).sort
: Sorting criteria (e.g., age,-name
for ascending by age
and descending by name
).Contributions are welcome! Please follow these steps:
git checkout -b feature/YourFeature
).git commit -m 'Add some feature'
).git push origin feature/YourFeature
).This project is licensed under the MIT License.
If you find this package useful, please consider giving it a ⭐️ on GitHub.
Enjoy building MongoDB queries with ease! 🚀
FAQs
MongoDB query builder module for hsa-technologies-00
The npm package @hsa-technologies-00/hsa-query-builder receives a total of 6 weekly downloads. As such, @hsa-technologies-00/hsa-query-builder popularity was classified as not popular.
We found that @hsa-technologies-00/hsa-query-builder demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
Security News
A new Node.js homepage button linking to paid support for EOL versions has sparked a heated discussion among contributors and the wider community.
Research
North Korean threat actors linked to the Contagious Interview campaign return with 35 new malicious npm packages using a stealthy multi-stage malware loader.