Base44: Advanced Entity Filtering with MongoDB-Style Query Operators
Base44 enhanced the entities.filter() SDK method with support for MongoDB-style query operators and array shorthand matching, giving developers expressive, server-side query capabilities directly from the client SDK. Developers can now use operators like $gte, $in, $or, $regex, and $exists to perform complex, performant queries at the database level, eliminating the need to fetch entire datasets and filter client-side. This directly addresses a long-standing developer pain point around performance degradation and security exposure when working with growing data volumes.
Sources & Mentions
2 external resources covering this update
Enhanced Entity Filtering in the Base44 SDK
Base44 updated the entities.filter() method in its JavaScript SDK with significantly expanded query capabilities, enabling developers to write expressive, server-side queries that go far beyond simple equality checks. The update introduces support for MongoDB-style query operators and array shorthand matching as part of the EntityFilterQuery<T> type parameter.
The Problem This Solves
Before this update, developers relying on Base44's entity system often had to fetch entire datasets and apply filtering logic in client-side JavaScript. This approach degrades predictably as data volumes grow: fetching all records consumes increasing memory, wastes bandwidth, and — critically — exposes more data to the client than necessary for the current view. Community feedback on Base44's platform explicitly flagged this as a production blocker, with developers noting that without server-side filtering support, the platform would not scale for real-world SaaS applications.
The May 2026 update resolves this directly by pushing filter evaluation down to the database layer.
What Changed
The filter() method now accepts an EntityFilterQuery<T> object that supports three new query modes alongside the existing exact-match syntax:
Array shorthand for OR matching allows passing an array as a field value to match any of the provided values, replacing verbose $or expressions for simple membership checks. For example: { external_id: ['item-1', 'item-2', 'item-3'] }.
MongoDB comparison operators enable range queries, negation, and membership tests that previously required custom backend functions. For example: { count: { $gte: 100 }, external_id: { $in: ['item-1', 'item-2'] } }.
Logical operators ($or, $and, $not, $nor) allow combining multiple conditions across different fields, supporting compound queries that target multiple entity properties at once.
Full Operator Support
The complete set of supported operators includes:
- Comparison:
$eq,$ne,$gt,$gte,$lt,$lte - Membership:
$in,$nin - Logical:
$and,$or,$not,$nor - Existence:
$exists - Pattern:
$regex - Array:
$all,$elemMatch,$size - Null matching: pass
nulldirectly as a field value to match null records
Why It Matters
For developers building production applications on Base44, this update removes a significant architectural constraint. Server-side filtering means query results are scoped before data ever leaves the database — reducing latency, bandwidth, and the risk of data over-exposure. Combined with Base44's existing pagination (limit / skip), sort controls, and field projection (fields), the filter() method now offers a query interface comparable to mature ORMs, without requiring custom backend function workarounds.
The update is backward-compatible: existing filter() calls using simple field-value pairs continue to work unchanged.