FQL v4 will be decommissioned on June 30, 2025. Ensure that you complete your migration from FQL v4 to FQL v10 by that date. For more details, review the migration guide. Contact support@fauna.com with any questions. |
Get
This reference topic applies to FQL v4. Go to this page for the latest FQL v10 reference topics. |
Get( ref, [ts] )
get( ref, [ts] )
Get( ref, [ts] )
Get( ref, [ts] )
Get( ref, [ts] )
Description
The Get
function retrieves a single document identified by
a Reference. An optional timestamp (ts
- a Long) can be
provided to retrieve the document version that existed at the specific
date and time. If the timestamp is omitted, the default is the current
time.
When a Set Reference (from a Match
expression) is passed
to Get
, the first document (based on the sort order of the
index) in the set is returned. If the set contains no entries,
Get
fails with a "set not found" error.
Errors
-
If the document does not exist, a "document not found" error is returned.
To avoid such errors, use the
Exists
function in a conditional expression in your query. See the example, below. -
If the client does not have read permission for the document, a "permission denied" error is returned.
-
If a Set Reference is provided and the set does not exist, or contains no entries, a "set not found" error is returned.
Parameter
Parameter | Type | Definition and Requirements | ||
---|---|---|---|---|
|
Reference or a Set Reference |
A document reference that uniquely identifies a document, or a set
reference from a |
||
|
Long or Timestamp |
Optional - Return the document at the specified point in time (number of UNIX microseconds or Timestamp). The default is the current time.
|
Returns
A document containing both the document data and metadata:
Field Name | Field Type | Definition and Requirements |
---|---|---|
|
Reference |
The reference identifies the document retrieved. |
|
Object |
Optional - the document data retrieved at the location pointed to by This field is returned only if the document contains a |
|
Long |
The timestamp associated with the creation of the requested document
version, according to the |
Examples
Retrieve a document by reference
The following query retrieves an document by providing a reference to the collection named "spells" with a specific document ID:
{
ref: Ref(Collection("spells"), "181388642046968320"),
ts: 1592113594660000,
data: {
name: 'Fire Beak',
element: [ 'air', 'fire' ],
spellbook: Ref(Collection("spellbooks"), "181388642139243008")
}
}
{'ref': Ref(id=181388642046968320, collection=Ref(id=spells, collection=Ref(id=collections))), 'ts': 1592959119480000, 'data': {'name': 'Fire Beak', 'element': ['air', 'fire'], 'spellbook': Ref(id=181388642139243008, collection=Ref(id=spellbooks, collection=Ref(id=collections)))}}
map[data:map[element:[air fire] name:Fire Beak spellbook:{181388642139243008 0xc000170360 0xc000170360 <nil>}] ref:{181388642046968320 0xc000170180 0xc000170180 <nil>} ts:1603747176520000]
ObjectV(ref: RefV(id = "181388642046968320", collection = RefV(id = "spells", collection = RefV(id = "collections"))),ts: LongV(1603756365810000),data: ObjectV(name: StringV(Fire Beak),element: Arr(StringV(air), StringV(fire)),spellbook: RefV(id = "181388642139243008", collection = RefV(id = "spellbooks", collection = RefV(id = "collections")))))
{
ref: Ref(Collection("spells"), "181388642046968320"),
ts: 1624310416790000,
data: {
name: 'Fire Beak',
element: [ 'air', 'fire' ],
spellbook: Ref(Collection("spellbooks"), "181388642139243008")
}
}
Fetch multiple documents by reference
To retrieve multiple references in a single operation, use an array to group and return multiple documents. The following example returns three different identifiers from the "spells" collection in a single query. This saves network bandwidth and processing by grouping several requests for data into the same operation.
[
{
ref: Ref(Collection("spells"), "181388642046968320"),
ts: 1592270304740000,
data: {
name: 'Fire Beak',
element: [ 'air', 'fire' ],
spellbook: Ref(Collection("spellbooks"), "181388642139243008")
}
},
{
ref: Ref(Collection("spells"), "181388642071085568"),
ts: 1592270304740000,
data: {
name: "Water Dragon's Claw",
element: [ 'water', 'fire' ],
spellbook: Ref(Collection("spellbooks"), "181388642139243008")
}
},
{
ref: Ref(Collection("spells"), "181388642088911360"),
ts: 1592270304740000,
data: { name: "Hippo's Wallow", element: [ 'water', 'earth' ] }
}
]
[{'ref': Ref(id=181388642046968320, collection=Ref(id=spells, collection=Ref(id=collections))), 'ts': 1592959519240000, 'data': {'name': 'Fire Beak', 'element': ['air', 'fire'], 'spellbook': Ref(id=181388642139243008, collection=Ref(id=spellbooks, collection=Ref(id=collections)))}}, {'ref': Ref(id=181388642071085568, collection=Ref(id=spells, collection=Ref(id=collections))), 'ts': 1592959519240000, 'data': {'name': "Water Dragon's Claw", 'element': ['water', 'fire'], 'spellbook': Ref(id=181388642139243008, collection=Ref(id=spellbooks, collection=Ref(id=collections)))}}, {'ref': Ref(id=181388642088911360, collection=Ref(id=spells, collection=Ref(id=collections))), 'ts': 1592959517110000, 'data': {'name': "Hippo's Wallow", 'element': ['water', 'earth']}}]
[map[data:map[element:[air fire] name:Fire Beak spellbook:{181388642139243008 0xc000146420 0xc000146420 <nil>}] ref:{181388642046968320 0xc000146240 0xc000146240 <nil>} ts:1603747176520000] map[data:map[element:[water fire] name:Water Dragon's Claw spellbook:{181388642139243008 0xc0001468a0 0xc0001468a0 <nil>}] ref:{181388642071085568 0xc000146600 0xc000146600 <nil>} ts:1603747176520000] map[data:map[element:[water earth] name:Hippo's Wallow] ref:{181388642088911360 0xc000146a80 0xc000146a80 <nil>} ts:1603747162980000]]
Arr(ObjectV(ref: RefV(id = "181388642046968320", collection = RefV(id = "spells", collection = RefV(id = "collections"))),ts: LongV(1603756365810000),data: ObjectV(name: StringV(Fire Beak),element: Arr(StringV(air), StringV(fire)),spellbook: RefV(id = "181388642139243008", collection = RefV(id = "spellbooks", collection = RefV(id = "collections"))))), ObjectV(ref: RefV(id = "181388642071085568", collection = RefV(id = "spells", collection = RefV(id = "collections"))),ts: LongV(1603756365810000),data: ObjectV(name: StringV(Water Dragon's Claw),element: Arr(StringV(water), StringV(fire)),spellbook: RefV(id = "181388642139243008", collection = RefV(id = "spellbooks", collection = RefV(id = "collections"))))), ObjectV(ref: RefV(id = "181388642088911360", collection = RefV(id = "spells", collection = RefV(id = "collections"))),ts: LongV(1603756293930000),data: ObjectV(name: StringV(Hippo's Wallow),element: Arr(StringV(water), StringV(earth)))))
[
{
ref: Ref(Collection("spells"), "181388642046968320"),
ts: 1624450221980000,
data: {
name: 'Fire Beak',
element: [ 'air', 'fire' ],
spellbook: Ref(Collection("spellbooks"), "181388642139243008")
}
},
{
ref: Ref(Collection("spells"), "181388642071085568"),
ts: 1624450221980000,
data: {
name: "Water Dragon's Claw",
element: [ 'water', 'fire' ],
spellbook: Ref(Collection("spellbooks"), "181388642139243008")
}
},
{
ref: Ref(Collection("spells"), "181388642088911360"),
ts: 1624450219860000,
data: { name: "Hippo's Wallow", element: [ 'water', 'earth' ] }
}
]
Handle "document not found"
The following example demonstrates the use of a conditional expression to handle document existence. Both variations are included by using an array (per the previous example, above).
[
{
ref: Ref(Collection("spells"), "181388642046968320"),
ts: 1653349010350000,
data: {
name: 'Fire Beak',
element: [ 'air', 'fire' ],
spellbook: Ref(Collection("spellbooks"), "181388642139243008")
}
},
false
]
[{'ref': Ref(id=181388642046968320, collection=Ref(id=spells, collection=Ref(id=collections))), 'ts': 1653349098690000, 'data': {'name': 'Fire Beak', 'element': ['air', 'fire'], 'spellbook': Ref(id=181388642139243008, collection=Ref(id=spellbooks, collection=Ref(id=collections)))}}, False]
[map[data:map[element:[air fire] name:Fire Beak spellbook:{181388642139243008 0x140001944e0 0x140001944e0 <nil>}] ref:{181388642046968320 0x14000194300 0x14000194300 <nil>} ts:1653349417380000] false]
Arr(ObjectV(ref: RefV(id = "181388642046968320", collection = RefV(id = "spells", collection = RefV(id = "collections"))),ts: LongV(1653349514650000),data: ObjectV(name: StringV(Fire Beak),element: Arr(StringV(air), StringV(fire)),spellbook: RefV(id = "181388642139243008", collection = RefV(id = "spellbooks", collection = RefV(id = "collections"))))), BooleanV(False))
[
{
ref: Ref(Collection("spells"), "181388642046968320"),
ts: 1653348867010000,
data: {
name: 'Fire Beak',
element: [ 'air', 'fire' ],
spellbook: Ref(Collection("spellbooks"), "181388642139243008")
}
},
false
]
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!