This is the short-form technical reference entry describing how to search for data in Bubble. If you are looking for more in-depth and long-form articles on the subject, you may be interested in checking our Finding data article or our series on data in Bubble.
These are the search options and operators to use when performing searches.
Our Academy quick tip on how to ignore empty constraints
If this checkbox is checked, constraints using values evaluating to null will be ignored. In other words, if a constraint evaluates to null, all items will be returned. If this box is not checked, the search will only return items whose field's value is actually null. Note that this does not apply to the Advanced filter.
Select the type of things you looking for. It should be user or a type defined by you.
Watch our Academy quick tip on how to use search constraints
Enter the different constraints to apply to this search.
Text matching in the database is limited to the first 256 characters for indexing purposes. If you need to match text longer than 256 characters in a search, consider appending a "filtered:" with an advanced constraint, saying "<this object>'s json_compare = <search criteria>". The reason you have to do an advanced filter is that it forces the expression to load all the items out of the database and do the full string match, rather than just the first 256 characters.
Choose the field to sort the list.
Note: Re-sorting a repeating group will immediately change all "current cell" values in any display elements that were dynamically derived from the current cell. Specifically, if you have a popup that opened to display "Current Cell's Thing's Info", this information is linked to the cell's index; the Thing will change when the repeating group is resorted. If there are visible elements that rely on "current cell's thing" as a data source, these will be updated once the group is re-sorted. This can result in changes in elements such as popups, group focus, or reusable elements that conditionally display information about the current cell.
Watch our Academy quick tip to learn how to sort a list
Select this option if you want the sorting field to be dynamic. When selected, another field will display and allow you to define the field. It can be dynamic and should match the name of an existing field. If it does not match, the application will show an error.
Choose this option to randomize the order results. It will be different for each user and after each refresh. It will be the same when re-running a workflow without refreshing the page.
If you want the search to be sorted according to a field chosen by the user, define an expression to define which field the search should use. For instance, the expression you design here should evaluate to 'Created Date' or some other fields you have defined in your type (it should match the displayed name of the field).
When sorting on a location field, results will be sorted by distance relative to a point. This field defines which point. Current position, an address, etc.
Choose 'yes' to sort in descending order or 'no' to sort in ascending order. This option can be dynamic and defines an expression that returns a yes/no, e.g., a checkbox element.
When you need more than one sorting rule, click this button and select a field and a descending/ascending order for that field. The rules will be applied in the order listed.
Performs a search across all the fields of the application database for a given type. For example, search for all entries with John as a first OR last name.
Performs more advanced searches. For example, to find all apartments whose creators have an email hosted by yahoo.com, use 'This apartment's creator's email:extract domain is 'yahoo.com.' This operation happens after the search or list is retrieved from the server and is not as efficient as using constraints on a search.