Select

Select( path, from, default )
Select( path, from, default )
Select( path, from, default )
Select( path, from, default )
select( path, from, default )
Select( path, from, default )

Description

The Select function extracts a single value from a document. It extracts the value specified by the path parameter out of the from parameter and returns the value. If the path does not exist, the optional default object is returned. If the default object is not provided, an error is returned.

Parameter

Argument Type Definition and Requirements

path

Long or String

The path to a field in the document to extract.

from

Object

The object containing the data to be extracted.

default

Object

Optional - The value to be returned if the path does not exist.

Returns

The value at the path.

Examples

The query below extracts from the top level object named "favorites" and second level array called "foods" the value in position 1 of the array. This value is "munchings".

client.Query(
  Select(
    Arr("favorites", "foods", 1),
    Obj(
      "favorites", Obj("foods", Arr("crunchings", "munchings", "lunchings"))
    )));
"munchings"
curl https://db.fauna.com/ \
    -u fnAChGwBcAACAO70ziE0cfROosNJHdgBmJU1PgpL: \
    -d '{
          "select": [ "favorites", "foods", 1 ],
          "from": {
            "object": {
              "favorites": {
                "object": { "foods": [ "crunchings", "munchings", "lunchings" ] }
              }
            }
          }
        }'
HTTP/1.1 200 OK
{ "resource": "munchings" }
result, _ := client.Query(
    f.Select(
        f.Arr{"favorites", "foods", 1},
        f.Obj{
            "favorites": f.Obj{
                "foods": f.Arr{"crunchings", "munchings", "lunchings"},
            },
        },
    ),
)

fmt.Println(result)
munchings
System.out.println(
    client.query(
      Select(
        Arr(Value("favorites"), Value("foods"), Value(1)),
        Obj(
           "favorites", Obj(
             "foods", Arr(
              Value("crunchings"),
              Value("munchings"),
              Value("lunchings")
            )
          )
        )
      )
    )
.get());
"munchings"
client.query(
  q.Select(
    ['favorites', 'foods', 1],
    { favorites: { foods: ['crunchings', 'munchings', 'lunchings'] } },
  )
)
.then((ret) => console.log(ret))
munchings
client.query(
  q.select(
    ["favorites", "foods", 1],
    {
      "favorites": {"foods": ["crunchings", "munchings", "lunchings"]}
    }
  ))
"munchings"
client.query(
  Select(
    Arr("favorites", "foods", 1),
    Obj(
      "favorites" -> Obj("foods" -> Arr("crunchings", "munchings", "lunchings"))
    )))
"munchings"

In the example below select extracts the "id" attributes from the Ref.

client.Query(Select(Arr("id"), Database("prydain")));
"prydain"
curl https://db.fauna.com/ \
    -u fnAChGwBacACAEZtRZFDXpyjIvq-sln34m-va4Km: \
    -d '{ "select": [ "id" ], "from": { "database": "prydain" } }'
HTTP/1.1 200 OK
{ "resource": "prydain" }
result, _ := client.Query(f.Select(f.Arr{"id"}, f.Database("prydain")))

fmt.Println(result)
prydain
System.out.println(
      client.query(
         Select(Arr(Value("id")), Database(Value("prydain"))))
      .get());
"prydain"
client.query(q.Select(['id'], q.Database('prydain')))
.then((ret) => console.log(ret))
prydain
client.query(q.select(["id"], q.database("prydain")))
"prydain"
client.query(Select(Arr("id"), Database("prydain")))
"prydain"

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!