qnot vs jQuery QueryBuilder
jQuery-QueryBuilder 3.0 · MIT
Feature by feature.
| feature | qnot | jQuery QueryBuilder |
|---|---|---|
| License | MIT | MIT |
| Depends on | @qnot/core only (qnot ahead) | jQuery, Bootstrap 5 and Bootstrap Icons (dependencies of 3.0) |
| Frameworks | Plain DOM, plus React, Vue, Svelte and Solid bindings on the same store (qnot ahead) | jQuery plugin |
| SQL | Export in five dialects with bound params; import of WHERE clauses | sql-support plugin: export and import |
| MongoDB | Export and import | mongodb-support plugin |
| Also exports | JsonLogic, Elasticsearch, SpEL, plain English (qnot ahead) | No other formats built in |
| Drag and drop | Built in | sortable plugin |
| NOT groups | Built in | not-group plugin |
| Undo and redo | Built into the store (qnot ahead) | Not included |
| Functions, list groups, field references | Yes (qnot ahead) | Not built in |
| TypeScript | Written in TypeScript; rule values typed by the schema (qnot ahead) | JavaScript, no bundled type definitions |
| First render, 1,000 rules | 117 ms (qnot ahead) | 868 ms |
Measured at 1,000 rules.
@qnot/dom; the React build is listed too. At 1,000 rules the first render takes 868 ms against 117 ms. Its sizes include jQuery and, for CSS, Bootstrap.Run of 2026-10-19: Apple M5, Chromium 156 via Playwright 1.64, production builds, no CPU throttling. Medians of fresh pages (5 to 9 per size); the tree is 10 fields in groups of 10 rules. JS is gzipped and excludes React for React libraries (jQuery is included). Lower is better. jQuery QueryBuilder takes 7.4× as long to render. The harness, its method and every size.
When jQuery QueryBuilder is the better choice.
- Your app is built on jQuery and Bootstrap. The plugin fits the way the rest of the page already works, and its look matches.
- Your queries are small. At ten rules it renders in about 26 ms and a keystroke is a tenth of a millisecond. There is nothing to gain on speed.
- Its plugins already do what you need. SQL and MongoDB import and export, sortable rules, NOT groups, unique filters and filter descriptions are all there, and it has years of use behind it.
Switching.
format: jqqb. It loads the JSON that getRules() returned, and getValue() gives the same shape back.Filters become a schema: type: 'integer' is f.number({ integer: true }), input: 'select' with values is f.enum(), a radio of yes / no is f.boolean().
Operators map by name: equal to eq, begins_with to startsWith, is_null to isNull. See the vanilla guide for mounting options.
Questions people ask
- Can qnot load the rules I saved from jQuery QueryBuilder?
- Yes. Create the store with format: jqqb and initial set to your saved getRules() output. store.getValue() keeps returning the same { condition, rules } shape, so the server side doesn't change.
- Do I need jQuery or Bootstrap?
- No. @qnot/dom uses plain DOM APIs and ships a small stylesheet of its own. If the rest of your app uses Bootstrap, the builder sits next to it without conflict.
- Can I switch one page at a time?
- Yes. Both builders can live in the same app, and because qnot speaks the same JSON, a query saved by one page loads in the other.
- Is jQuery QueryBuilder still a good choice?
- For a jQuery app with modest queries, yes. It is mature, MIT licensed and its plugins cover SQL, MongoDB, drag and drop and NOT groups. It slows down on very large queries: about 0.9 s to render 1,000 rules in our run.
Other comparisons
- qnot vs react-querybuilderMIT
The most used React query builder. Huge ecosystem, React Native, many export formats.
- qnot vs react-awesome-query-builderMIT
The feature-rich React option: functions, list groups, many widgets. qnot matches it feature for feature.
- qnot vs Syncfusion QueryBuilderCommercial or community
A commercial component in the Syncfusion suite, with wrappers for most frameworks.
- qnot vs DevExtreme FilterBuilderCommercial
A commercial filter builder in DevExtreme, made to feed its DataGrid.