Get
Get( ref, [ts] )
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 | ||
---|---|---|---|---|
|
A document reference that uniquely identifies a document, or a set
reference from a |
|||
|
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 |
---|---|---|
|
The reference identifies the document retrieved. |
|
|
Optional - the document data retrieved at the location pointed to by This field is returned only if the document contains a |
|
|
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:
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")))))
map[data:map[element:[air fire] name:Fire Beak spellbook:{181388642139243008 0xc000170360 0xc000170360 <nil>}] ref:{181388642046968320 0xc000170180 0xc000170180 <nil>} ts:1603747176520000]
{ref: ref(id = "181388642046968320", collection = ref(id = "spells", collection = ref(id = "collections"))), ts: 1593465108040000, data: {name: "Fire Beak", element: ["air", "fire"], spellbook: ref(id = "181388642139243008", collection = ref(id = "spellbooks", collection = ref(id = "collections")))}}
{
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)))}}
{
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.
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)))))
[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]]
[{ref: ref(id = "181388642046968320", collection = ref(id = "spells", collection = ref(id = "collections"))), ts: 1593465108040000, 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: 1593465108040000, 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: 1593464839880000, data: {name: "Hippo's Wallow", element: ["water", "earth"]}}]
[
{
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']}}]
[
{
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).
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))
[map[data:map[element:[air fire] name:Fire Beak spellbook:{181388642139243008 0x140001944e0 0x140001944e0 <nil>}] ref:{181388642046968320 0x14000194300 0x14000194300 <nil>} ts:1653349417380000] false]
[{ref: ref(id = "181388642046968320", collection = ref(id = "spells", collection = ref(id = "collections"))), ts: 1653349305410000, data: {name: "Fire Beak", element: ["air", "fire"], spellbook: ref(id = "181388642139243008", collection = ref(id = "spellbooks", collection = ref(id = "collections")))}}, false]
[
{
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]
[
{
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!