Check out v4 of the Fauna CLI

v4 of the Fauna CLI is now in beta.

The new version introduces enhancements to the developer experience, including an improved authentication workflow. To get started, check out the CLI v4 quick start.

set.includes()

Test if the Set includes a provided element.

Signature

includes(element: A) => Boolean

Description

Tests if the Set includes a provided element.

Eager loading

This method uses eager loading and requires a read of each document in the calling Set. For large Sets, this may result in poor performance and high costs.

Performance hint: full_set_read

Queries that call this method on a document Set emit a performance hint, if enabled. For example, the following query:

// Use `includes()` to check whether the `Product`
// collection includes a specific document.
let limes: Any = Product.byId("777")
Product.all().includes(limes)

Emits the following hint:

performance_hint: full_set_read - Using includes() causes the full set to be read. See https://docs.fauna.com/performance_hint/full_set_read.
at *query*:4:23
  |
4 | Product.all().includes(limes)
  |                       ^^^^^^^
  |

To address the hint, use set.take() to explicitly limit the size of the calling Set to fewer than 100 documents:

// Limit the doc Set's size using `take()`
let limes: Any = Product.byId("777")
Product.all().take(20).includes(limes)

This applies even if the original, unbounded Set contains fewer than 100 documents.

Alternatively, you can rewrite the query to avoid calling the method.

Parameters

Parameter Type Required Description

element

Generic

Yes

Element to check the Set for.

Return value

Type Description

Boolean

If true, the Set contains the provided element. Otherwise, false.

Examples

// `toSet()` converts an Array to a Set.
let set = [1, 2, 3].toSet()
set.includes(2)
true

Is this article helpful? 

Tell Fauna how the article can be improved:
Visit Fauna's forums or email docs@fauna.com

Thank you for your feedback!