When Datastore performs a query, it translates conditional operators to range scans over the related indexed values on Bigtable. This relationship with Bigtable is where Datastore gets its speed, as performance is bound to the size of the result set rather than the size of the data set. It does however impose some limitations on which queries can be performed.
So far, we've discussed indexes on a single property, known as single property indexes. These indexes can be used to perform the following queries:
- Ancestor and key filters
- Equality filters over multiple properties
- Inequality filters on a single property
- Sort order on a single property
This is due to the fact that each of these operations can be translated ...