Backend update Apr 5th 2018
GROQ Improvements
- GROQ: the syntax
someArray[] == someValue
was accidentally supported, even though it is semantically invalid. This has now been fixed, and support for this syntax has been removed. UsesomeValue in someArray
instead.
- Documents can now contain attributes with
null
values. - GROQ supports JSON escape sequences in strings (including Unicode sequences).
- Listeners can now specify
includeMutations=false
to exclude mutation data (e.g. patches) in events.
- GROQ: result windows beyond 100 documents no longer have duplicates or missing documents.
- GROQ: results beyond 1000 now return the correct number of results. Before, e.g.
*[1500...1600]
returned 1600 documents. - GROQ: Arrays can now be used in filters, e.g.
*["Oxygen" in constituents[].element].title
. - GROQ: fractional numbers in queries are now correctly parsed as 64-bit floats (as in documents), not 32-bit floats. This enables comparisons such as
*[ pi == 3.14 ]
. - GROQ: the
match
operator now supports using attributes on the right-hand side, e.g.*[body match title]
. - GROQ: the
||
operator will now correctly returnfalse
instead ofnull
with certain operands. - JSONPath: mutations no longer crash on comparisons with attributes on the right-hand side, e.g.
products[?(newPrice != missing)]
.
- GROQ: significant performance improvements when querying large, nested documents.