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.

Field accessors and method chaining

This section covers field accessors and method chaining.

Field access

Accessors can be viewed as keys for referencing fields or properties in an associative array, dictionary, or lookup table. In Fauna documents, fields can be accessed using dot notation or bracket notation.

Dot notation field accessor

The dot prefix (.) preceding the field name is used to access a field or property, as shown by the .aKey notation in this example:

let object = {
  aKey: "one",
  bKey: "two"
}
object.aKey
"one"

Providing a field that doesn’t exist returns an error.

Bracket notation field accessor

The following example uses bracket notation ([ ]), passing the field name as a string to access the field or property:

let object = {
  aKey: "one",
  bKey: "two"
}
object["aKey"]
"one"

Providing a field that doesn’t exist returns null.

Using bracket notation allows you to dynamically access document fields as shown in this example:

let object = {
  aKey: "one",
  bKey: "two"
}
let x = "aKey"
object[x]
"one"

Method chaining

Methods can be chained using dot notation to compose complex queries where the output of the previous method is the input of the next method.

In this example, the query returns up to ten documents from all the documents in the Product collection:

Product.all().take(10)

Anonymous field and method access

A variant of dot notation, the optional chaining operator can be used to access a field or invoking a method, returning null instead of an error if the left side of the expression evaluates to null.

Access an anonymous field example:

let customer = {
  name: "Alice Appleseed",
  address: {
    state: "DC"
  }
}

customer.address?.state // Returns "DC"

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!