参照関数
REFERENCE 型は、データベース内の他のドキュメント(または他のデータベース)への「ポインタ」として機能します。次の関数を使用すると、クエリの実行中にこの型を操作できます。
| 名前 | 説明 |
COLLECTION_ID
|
指定された参照内のリーフ コレクションの ID を返します。 |
DOCUMENT_ID
|
指定された参照内のドキュメントの ID を返します。 |
PARENT
|
親参照を返します。 |
REFERENCE_SLICE
|
指定された参照からセグメントのサブセットを返します。 |
COLLECTION_ID
構文:
collection_id(ref: REFERENCE) -> STRING
説明:
指定された REFERENCE のリーフ コレクション ID を返します。
例:
ref |
collection_id(ref) |
|---|---|
users/user1 |
"users" |
users/user1/posts/post1 |
"posts" |
DOCUMENT_ID
構文:
document_id(ref: REFERENCE) -> ANY
説明:
指定された REFERENCE のドキュメント ID を返します。
例:
ref |
document_id(ref) |
|---|---|
users/user1 |
"user1" |
users/user1/posts/post1 |
"post1" |
PARENT
構文:
parent(ref: REFERENCE) -> REFERENCE
説明:
指定された参照の親 REFERENCE を返します。参照がすでにルート参照である場合は、NULL を返します。
例:
ref |
parent(ref) |
|---|---|
/ |
NULL |
users/user1 |
/ |
users/user1/posts/post1 |
users/user1 |
REFERENCE_SLICE
構文:
reference_slice(ref: REFERENCE, offset: INT, length: INT) -> REFERENCE
説明:
REFERENCE は (collection_id, document_id) タプルのリストであり、array_slice(...) と同様に、そのリストを表示できます。
指定された ref のセグメントのサブセットである新しい REFERENCE を返します。
offset: スライスの開始インデックス(0 ベース)。負の値の場合、参照の末尾からのオフセットになります。length: スライスに含めるセグメントの数。
例:
ref |
offset |
length |
reference_slice(ref, offset, length) |
|---|---|---|---|
a/1/b/2/c/3 |
1L | 2L | b/2/c/3 |
a/1/b/2/c/3 |
0L | 2L | a/1/b/2 |
a/1/b/2/c/3 |
-2L | 2L | c/3 |