Data select by WHERE-expressions
Any operation is based on matched records selection. Any selection is performed according to WHERE-expression. In WHERE-expression the string is like in SQL.

Valid WHERE-expressions may contain brackets, keywords 'and' and 'or', arithmetical and logical operations, field names and numeric and string constants. Functions are not allowed. Superfluous brackets are also not allowed.

Parser converts the WHERE-expression to condition objects tree in several steps:
Valid fields expression may contain brackets, arithmetical operations, field names of one table and numeric and string constants. Functions are not allowed.
During WHERE-expression processing XBSDB creates initial recordset containing all records.

Then XBSDB reduces this recordset on every OR- and AND-expression in tree:
There is an optimization such as zero recordset checking and so on.
Finally XBSDB returns reduced initial recordset as result.

Indexes may be built on any correct fields expression. Indexes may increase the selection speed or not - it depends on client's JavaScript engine. In some cases they make 'select' operation faster up to 7 times. Sure, every index makes 'insert' and 'update' operations slower.